#ios #iphone #uitableview #uilabel #xcode8
#iOS #iPhone #uitableview #uilabel #xcode8
Вопрос:
Вот мой код
[cell.label.layer setCornerRadius:cell.label.frame.size.width/2];
вот что я попробовал :-
cell.label.clipsToBounds = YES;
также пробовал :-
cell.label.layer.masksToBounds = YES;
также я импортировал:-
#import <QuartzCore/QuartzCore.h>
ни один из этих подходов не работает.
Также я пробовал это как в IOS 9, так и в IOS 10, а также в симуляторе, а также на устройстве, кто-нибудь, кто сталкивается с такой же проблемой?
Ответ
Ну, после некоторых методов проб и ошибок я обнаружил, что передача абсолютного значения параметру углового радиуса сработала.
[cell.label.layer setCornerRadius:20.0];
что касается последнего вопроса, как вы можете динамически устанавливать радиус угла для метки при использовании раскадровки для просмотра таблиц.
Комментарии:
1. Ну, после некоторых методов проб и ошибок я обнаружил, что передача абсолютного значения параметру углового радиуса сработала. [ячейка. label. layer setCornerRadius:20.0];
2. Куда вы поместили
[cell.label.layer setCornerRadius:cell.label.frame.size.width/2];
код?3. @Mr.UB этот код будет находиться в cellForRowAtIndexPath: метода uitableview.
Ответ №1:
Попробуйте поместить это
cell.label.layer.masksToBounds = YES;
в awakeFromNib
или init
, если вы не используете xib или раскадровку, и поместите
cell.label.layer.cornerRadius = cell.label.frame.size.width/2;
в layoutSubviews
вашем UITableViewCell
.
Надеюсь, это поможет.
Комментарии:
1. спасибо, это, конечно, помогает. но как это сделать динамически при использовании раскадровки.
2. Этот код будет работать с его динамической настройкой. Поскольку представление загружается с другим фреймом, то для соответствия размеру экрана из раскадровки, а затем, когда система фактически размещает все представления, она выдает фактический фрейм, соответствующий размеру экрана. лучшее место для размещения такого типа зависящего от фрейма кода в подклассе UIView — layoutSubviews