我正在尝试将UIView
置于另一个视图的中心(如弹出视图),但是无论我做什么,我都无法使其居中对齐!
func loadPopUpView() {
let customView = CGRect(x: view.center.x, y: view.center.y, width: 100, height: 100)
popUpView = UIView(frame: customView)
popUpView.backgroundColor = UIColor.black
view.addSubview(popUpView)
popUpView.isHidden = false
}
我已经将背景颜色更改为黑色,以便知道它何时出现。 我无法使用情节提要来执行此操作,因为该情节提要在tableView上进行,因此我尝试以编程方式进行操作。 Result Image
答案 0 :(得分:0)
您还需要从x和y减去自定义视图高度和宽度的一半,如下所示:
let customView = CGRect(x: view.center.x - 50, y: view.center.y - 50, width: 100, height: 100)
答案 1 :(得分:0)
您要告诉它将左上角放在中心位置,因此您需要使它的位置缩小一半。
let customView = CGRect(x: view.center.x-50, y: view.center.y-50, width: 100, height: 100)
另一种解决方案是使用定位点。
customView.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
customView.centerYAnchor.constraint(equalTo: self.centerYAnchor).isActive = true
customView.heightAnchor.constraint(equalToConstant: 100).isActive = true
customView.widthAnchor.constraint(equalToConstant: 100).isActive = true
答案 2 :(得分:0)
在CGRect(x:, y:, width:, height:)
上,点(x,y)是原点。在iOS中,这是左上角。
在CGRect
doc上:
在默认的Core Graphics坐标空间中,原点位于 在矩形的左下角,矩形延伸 朝右上角。如果上下文中有一个 翻转坐标空间-通常在iOS上是这种情况-原点位于 左上角,矩形向右下延伸 角落。
因此要解决此问题:
let width = 100.0
let height = 100.0
let customViewFrame = CGRect(x: view.center.x - width/2.0, y: view.center.y - height/2.0, width: width, height: height)
另一种解决方法是在设置好帧(尤其是宽度/大小)后应用中心。
let customViewFrame = CGRect(x: 0, y: 0, width: 100, height: 100)
customViewFrame = view.center