0

У меня есть пользовательский UITableViewCell, который содержит UILabel, что я хочу иметь закругленные углы. Как я делал много раз, прежде чем установить радиус угла и использовать maskToBounds, чтобы сделать это программно. Сама ячейка создается в раскадровке. Я вызываю этот код из метода awakeFromNibUITableViewCell.UITableViewCell, вызывающий .layer.maskToBounds = YES в вопросе производительности subview

- (void)awakeFromNib { 

// Initialization code 
_distanceLabel.layer.cornerRadius = 2.0; 
_distanceLabel.layer.masksToBounds = YES; } 

Это работает, но я могу увидеть заметную проблему производительности в настоящее время, когда tableViewController надевается на навигационной стеку. Анимация tableViewController теперь заикается, когда она сдвигается справа при работе на моем устройстве (iPhone 6). Когда я прокомментирую строку _distanceLabel.layer.masksToBounds = YES;, анимация push работает нормально и слайды плавно, как обычно.

Я делаю приложения в течение многих лет, и это первый раз, когда я видел эту проблему. Кто-нибудь знает, что здесь происходит и как это исправить?

ответ

1

Сначала попробуйте установить это,

self.layer.masksToBounds = YES;

или, если это решение не работает, то попробуйте следующую ссылку, в которой fknrdcls дал очень хороший ответ на правильном пути относительно защиты радиуса угла отрицательного влияния на UITableView.
В основном uitableview является подклассом uiscrollview, поэтому решение ниже может решить вашу проблему.

UILabel layer cornerRadius negatively impacting performance

CornerRadius иногда влияют на Perfomance из UITableView.