我已通过编程方式在表格视图单元格中创建了一个按钮。我将按钮的x和y设置在单元格的宽度和高度的中心。问题是,它将在较大的iPhone(Xs max和Xr)中居中,但在较小的iPhone(如SE)中不会。我不明白为什么当我告诉单元格的中心时,在不同的iPhone中会有所不同。 例如,内部带有此按钮的单元格称为“ EditCell”
let EditBtn = UIButton(frame: CGRect(x: EditCell.frame.width/2, y: EditCell.frame.height/2, width: 60, height: 60))
它将在函数中创建,并在viewDidLoad
中被调用
有人可以帮我吗?
答案 0 :(得分:2)
您可以尝试
var editBtn = UIButton(type:.system)
editBtn.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
editBtn.centerXAnchor.constraint(equalTo: self.contentView.centerXAnchor),
editBtn.centerYAnchor.constraint(equalTo: self.contentView.centerYAnchor)
])
或
override func layoutSubviews() {
super.layoutSubviews()
editBtn.center = self.contentView.center
}
您的代码建议您将其添加到cellForRowAt
内,因此不要这样做,而是将其添加到单元格自定义类init方法的内部(如果它是程序单元格的话)以及awakeFormNib
的内部(如果它的xib /原型细胞
答案 1 :(得分:0)
尝试一下:
let editBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 60))
editBtn.center = EditCell.contentView.center