我正在尝试将 我的 subview 与 superview 中的 button 居中。所以我希望 subview 的中心是 superview 的中心。我正在尝试使用以下代码:
override func viewDidLoad() {
self.view.backgroundColor = UIColor.redColor()
var menuView = UIView()
var newPlayButton = UIButton()
//var newPlayImage = UIImage(named: "new_game_button_5cs")
var newPlayImageView = UIImageView(image: UIImage(named: "new_game_button_5cs"))
newPlayButton.frame = CGRectMake(0, 0, newPlayImageView.frame.width, newPlayImageView.frame.height)
newPlayButton.setImage(newPlayImage, forState: .Normal)
newPlayButton.backgroundColor = UIColor.whiteColor()
menuView.center = self.view.center
menuView.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height / 2)
menuView.backgroundColor = UIColor.whiteColor()*/
menuView.addSubview(newPlayButton)
}
不幸的是,它似乎并没有起作用,因为这是结果:
请您参考如下方法:
UIView *subview = your View To Be Centered In Its SuperView;
UIView *superView = subview.superview;
subview.center = [superView convertPoint:superView.center
fromView:superView.superview];
如果 view 为 nil(on fromView:),则此方法改为从窗口基坐标转换。否则, View 和接收器必须属于同一个 UIWindow 对象。
注意:如果您使用自动布局,则必须更改约束。不是框架或中心。
祝你好运:)
