Ответ 1
Вы можете использовать путь ключа.
Например, радиус угла (layer.cornerRadius
), как описано на изображении.
Вы не сможете увидеть эффекты на раскадровке, потому что эти параметры оцениваются во время выполнения. Теперь вы можете использовать быструю категорию в UIView (код ниже рисунка) с помощью @IBInspectable
, чтобы показать результат в раскадровке (если вы используете категорию, используйте только cornerRadius
, а не layer.cornerRadius
в качестве ключевого пути.
extension UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
}
Ниже приведена категория из Peter DeWeese, которые позволяют использовать ключевой путь layer.borderUIColor
для установки цвета рамки.
CALayer + XibConfiguration.h:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer(XibConfiguration)
// This assigns a CGColor to borderColor.
@property(nonatomic, assign) UIColor* borderUIColor;
@end
CALayer + XibConfiguration.m:
#import "CALayer+XibConfiguration.h"
@implementation CALayer(XibConfiguration)
-(void)setBorderUIColor:(UIColor*)color
{
self.borderColor = color.CGColor;
}
-(UIColor*)borderUIColor
{
return [UIColor colorWithCGColor:self.borderColor];
}
@end