我正在尝试创建一个宽度固定的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在所有视图控制器的中间以及固定大小的中心,无论屏幕大小是在运行它。这可能吗?
答案 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)
}