#ios15 #accessoryview
Вопрос:
У меня есть пользовательский UIView, содержащий UILabel как cell.accessoryView = containerView
. Он работал нормально до iOS 14, но с iOS 15 containerView
он меняет свою рамку tableView reload
. Он отображается правильно при первой загрузке, но перезагрузка приводит accessoryView
к изменению его кадра. Мой код таков
let notificationLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 30, height: 30)) let containerView = UIView(frame: CGRect(x: 0, y: 0, width: 30, height: 30)) containerView.clipsToBounds = true containerView.backgroundColor = .clear containerView.addSubview(notificationLabel!) cell.accessoryView = containerView
Я изменяю рамку контейнера на основе текста в UILabel in cellForRowAtIndexPath
.
Похоже, код фрейма для containerView
этого испортился. Но это отлично работает в iOS 14.
Я предполагаю, что есть некоторые изменения, и accessoryView
положение можно изменить в iOS 15.
Есть какие-либо предложения, как заставить его работать без указания точной оси x или оси y в iOS 15?
Ответ №1:
Возможно, вы видите дополнительное дополнение «по умолчанию», добавленное в заголовок раздела.
В вашем представлении загрузить добавить
if (@available(iOS 15.0, *)) { [self.tableViewName setSectionHeaderTopPadding:0.0f]; }
Комментарии:
1. Нисколько. У меня уже есть этот чек.
2. Это тоже не сработало для меня.
Ответ №2:
Я тоже не мог найти решения для этого. Поэтому я отказался от сотового iOS 15.
Вместо этого мой обработчик cellForRowAtIndexPath вызывает:
[cell.contentView removeAllSubviews] [cell.contentView addSubView:myCustomView]
Комментарии:
1. Я все еще использую cell.accessoryView, но я правильно устанавливаю его рамку (происхождение размер), что хорошо работает для iOS 15 и предыдущих версий.