2017-05-28 99 views
-2
class ViewController: UIViewController { 
    @IBOutlet var friendsButton: UIImageView! //Friends Button 
    @IBOutlet var circleButton: UIImageView! //Circle Button 
    @IBOutlet var profileButton: UIImageView! //Profile Button 
    @IBOutlet var whiteBoxSelector: UIImageView! //White Box Selector 

    override func viewDidLayoutSubviews() { 
     whiteBoxSelector.center = self.friendsButton.center //line that doesn't seem to run properly 
    } 
} 

一旦我运行此,我whiteBoxSelector移动到朋友按钮,但只在y轴和x位置似乎是0.我没有设置任何约束的白盒和我的按钮都在一个堆栈视图。为什么.center只能在y轴上为我工作?

回答

0

视图的中心属性指定:

该帧的中心。

该中心被指定在坐标 系统的超级视图并以点为单位进行度量。设置此 属性会相应地更改帧属性的值。

你的问题是whiteBoxSelectorfriendsButton不共享相同的superview,所以坐标系是不一样的。您需要将friendsButtoncenterfriendsButton(其超级视图)的坐标系统转换为whiteBoxSelector(其超级视图)的坐标系统。

override func viewDidLayoutSubviews() { 
    whiteBoxSelector.center = whiteBoxSelector.superview.convert(friendsButton.center, from: friendsButton.superview) 
} 
相关问题