Установите кнопку в центре ячейки просмотра таблицы программно - PullRequest
0 голосов
/ 07 мая 2019

Я программно сделал кнопку внутри ячейки таблицы. Я установил 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 Может ли кто-нибудь помочь мне об этом?

Ответы [ 2 ]

2 голосов
/ 07 мая 2019

Вы можете попробовать либо

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, поэтому не делайте этого, а вместо этого добавляйте его внутриметод инициализации пользовательского класса ячейки, если это программная ячейка и внутри awakeFormNib, если это ячейка xib / prototype

0 голосов
/ 07 мая 2019

Попробуйте это:

let editBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 60))
editBtn.center = EditCell.contentView.center
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...