Swift:如何使视图成为固定大小,无论大小等级如何

时间:2017-01-09 18:06:02

标签: ios swift

我正在尝试创建一个宽度固定的UIView:200,高度:100以我的视图控制器底部居中:

override func viewDidLayoutSubviews() {
    var 
    self.infoView.frame = CGRect(x: view.frame.minX, y: view.frame.maxY, width: 200, height: 100)
    super.viewDidLayoutSubviews()
}

但是这段代码没有达到预期的效果,因为UiView尺寸在每个屏幕尺寸上都在变化而且没有居中。

要清楚,我希望infoView在所有视图控制器的中间以及固定大小的中心,无论屏幕大小是在运行它。这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。当然,您可以在Interface Builder中执行此操作,但如果您想以编程方式执行此操作,那么这里有一个适用于视图控制器的想法:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    let width: CGFloat = 200
    let height: CGFloat = 200
    let x = (view.frame.maxX / 2) - (width / 2)
    let y = (view.frame.maxY / 2) - (height / 2)
    let frame = CGRect(x: x, y: y, width: width, height: height)

    let centeredView = UIView(frame: frame)

    centeredView.backgroundColor = UIColor.green
    view.addSubview(centeredView)
}