borderColor в любом представлении (или подклассе UIView) также можно установить с использованием раскадровки с небольшим количеством кодирования, и этот подход может быть очень полезен, если вы устанавливаете цвет границы для нескольких объектов пользовательского интерфейса. 1003 *
Ниже приведены шаги, как этого добиться,
- Создание категории в классе CALayer. Объявите свойство типа UIColor с подходящим именем, я назову его borderUIColor .
- Напишите установщик и получатель для этого свойства.
- В методе 'Setter' просто установите для свойства borderColor слоя значение CGColor новых цветов.
- В методе 'Getter' верните UIColor с помощью borderColor слоя.
P.S .: Помните, категории не могут иметь сохраненных свойств. '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, выполните оставшиеся шаги;
- Нажмите на объект просмотра, для которого вы хотите установить цвет границы.
- Нажмите «Identity Inspector» (3-й слева) на панели «Utility» (правая часть экрана).
- В разделе «Определенные пользователем атрибуты времени выполнения» нажмите кнопку «+», чтобы добавить путь к ключу.
- Установите тип пути к ключу «Цвет».
- Введите значение ключевого пути как «layer.borderUIColor». [Помните, что это должно быть имя переменной , которое вы объявили в категории, а не borderColor здесь это borderUIColor ].
- Наконец-то выбрал любой цвет.
Вы должны установить значение свойства layer.borderWidth как минимум на 1, чтобы увидеть цвет границы.
Построй и беги.
Удачного кодирования. :)