кордон кольору для будь-якого виду (або підкласу UIView) також можна встановити, використовуючи розкадровку з невеликим кодуванням, і цей підхід може бути дуже корисним, якщо ви встановлюєте колір межі для кількох об'єктів інтерфейсу.
Нижче наведено кроки, як цього досягти,
- Створіть категорію за класом CALayer. Заявіть про властивість типу UIColor з відповідною назвою, я назву її borderUIColor .
- Напишіть сетер та геттер для цієї властивості.
- У методі "Setter" просто встановіть властивість шару "borderColor" на нові кольори значення CGColor.
- У методі "Getter" поверніть UIColor з межею шаруColor.
PS: Пам'ятайте, що категорії не можуть зберігати властивості. "borderUIColor" використовується як обчислена властивість, як орієнтир для досягнення того, на чому ми зосереджені.
Будь ласка, подивіться нижче на зразок коду;
Мета C:
Файл інтерфейсу:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Файл реалізації:
#import "CALayer+BorderProperties.h"
@implementation CALayer (BorderProperties)
- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Swift 2.0:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.CGColor
}
get {
return UIColor(CGColor: self.borderColor!)
}
}
}
І нарешті, перейдіть до вашої розкадровки / XIB, виконайте інші кроки;
- Клацніть на об'єкт «Перегляд», для якого потрібно встановити межу «Колір».
- Клацніть на "Інспектор ідентичності" (3-й зліва) на панелі "Утиліта" (Права частина екрана).
- У розділі "Визначені користувачем атрибути часу" натисніть кнопку "+", щоб додати ключовий шлях.
- Встановіть тип контуру ключа на "Колір".
- Введіть значення для ключового шляху як "layer.borderUIColor". [Пам'ятайте, це має бути ім'я змінної, яку ви оголосили в категорії, а не borderColor, тут це borderUIColor ].
- Нарешті вибрав будь-який колір, який вам захочеться.
Ви повинні встановити значення властивості layer.borderWidth як мінімум 1, щоб побачити колір межі.
Побудувати та запустити. Щасливе кодування. :)