Редизайн iOS 7 привел к изменению иерархии представлений UITableViewCells
. Представление содержимого ячейки было обернуто в частный класс под названием UITableViewCellScrollView
.
В iOS 7 UITableViewCellScrollView
установлен clipsToBounds
установлен на YES
, а UITableViewCellContentView
имеет clipToBounds
установлен на NO
.
В iOS 7.1 UITableViewCellScrollView
установлен clipsToBounds
на NO
, а UITableViewCellContentView
имеет clipToBounds
установлен на NO.
Если вы вызываете [[self contentView] setClipsToBounds:YES]
в iOS 7.1, он его вставляет. К моменту, когда layoutSubviews вызывается в ячейке UITableViewCellContentView, ClipPoBounds снова установил NO.
[[self contentView] superview] setClipsToBounds:YES]
работает в iOS 7.1 и устанавливает UITableViewCellScrollView clipToBounds в YES, но это очень хрупкое решение.
Переопределение layoutSubview в ячейке и вызов [[self contentView] setClipsToBounds:YES]
работает, но это еще одно слабое решение.
Кто-нибудь знает, почему это изменение было сделано и более надежное решение?