У меня есть несколько пользовательских UITableViewCells в моем приложении, в основном определяемые nib. При переходе на iOS 8 и Xcode 6 поля слева и справа неверны. Эти ячейки часто перемежаются в виде таблицы с ячейками по умолчанию.
Я сделал пример проекта, вот вопрос маржи, о котором я говорю:
Единственное, что мне удалось найти, относится к этому новому свойству layoutMargins
. Для UITableViewCells его значение, похоже, меняется в зависимости от устройства, на котором работает приложение:
iPhone 6 and below - layoutMargin: {8, 16, 8, 16}
iPhone 6 Plus - layoutMargin: {8, 20, 8, 20}
Это, похоже, совпадает с полями, которые я вижу на стандартных ячейках. Однако содержимое для моих пользовательских ячеек находится внутри ячеек contentView
, у которого есть стандартный UIView layoutMargin
of {8, 8, 8, 8}
. Это означает, что любые ограничения макета, связанные с маркой контейнера, добавляют неверный интервал.
Единственное, что я нашел, чтобы исправить это, добавив следующее в cellForRowAtIndexPath:
cell.contentView.layoutMargins = cell.layoutMargins;
Это не похоже на очень хорошее решение в будущем (тем более, что мне нужно будет обернуть его в чеки для iOS8 для обеспечения совместимости).
Есть ли у кого-нибудь идеи? Я чувствую, что мне что-то не хватает.