Редизайн 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] работает, но это еще одно слабое решение.
Кто-нибудь знает, почему это изменение было сделано и более надежное решение?