Skip to main content
 首页 » 操作系统

ios:在其 super View 中居中 View

2024年01月01日51dyllove98

我正在尝试将 我的 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 对象。

注意:如果您使用自动布局,则必须更改约束。不是框架或中心。

祝你好运:)