Подтвердить что ты не робот

Как остановить UITableView от отсечения содержимого UITableViewCell в iOS 7

Когда я обновил приложение my от iOS6 до iOS7, я заметил, что, когда в iOS6 содержимое ячеек было разрешено пересекать за пределами ячейки, когда для свойства clipsToBounds установлено значение NO в представлении ячеек или contentView, iOS7, похоже, отключает эту даже если общие представления, таблицы, ячейки и элементы содержимого CellToBounds установлены как NO. Вы можете увидеть образец этого во включенных изображениях. Первый - это тестовый код, запущенный на iOS6, а второй - тот же код, что и на iOS7:

A sample of this running on iOS6Identical code running on iOS7 Кто-нибудь знает, как решить эту проблему? Я предполагаю, что это всего лишь однострочное исправление, но я потратил несколько часов на это без везения. Чтобы избежать серьезного переписывания и головных болей, которые я имел бы, но играя с просмотром, таблицами, ячейками и элементами cellcontentToBounds была бесплодной - все на NOOS все равно на iOS7, поэтому я не уверен, что происходит по-другому.

Вы можете посмотреть и загрузить образец проекта по адресу: https://github.com/Jon-Schneider/ClipsToBoundsTest

Спасибо!

4b9b3361

Ответ 1

Похоже, что иерархия представлений немного изменилась в ios7 для ячеек таблицы.

Вы можете попробовать установить рамки для ограничений в надстройке contentView:

[cell.contentView.superview setClipsToBounds:NO];

Если вы добавите следующее в свой пример кода и запустите ios7 vs ios6, вы увидите дополнительное представление между представлением ячейки и представлением содержимого:

[cell.contentView.superview setClipsToBounds:NO];
NSLog(@"%@", cell.contentView.superview);
NSLog(@"%@", cell.contentView.superview.superview);
NSLog(@"%@", cell);

if (self.view.clipsToBounds) {
    NSLog(@"Master clips");
} else {
    NSLog(@"Master no clip");
}

Ответ 2

Вы можете сделать чанг в инспекторе атрибутов tableview в Clip Subviews.

enter image description here