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