【发布时间】:2015-06-24 22:21:20
【问题描述】:
有没有办法使用NSArray IBInspectable 在 Storyboard 自定义视图中定义多个值?
我知道NSArray 没有任何关于将存储在其中的对象类型的信息,因此这可能是个问题。但是有一些使用注释或其他东西的解决方案吗?
我想做的是通过情节提要设置UIColors 的NSArray 并在情节提要可视化期间在视图中绘制渐变层。
我开始创建名为 startColor 和 endColor 的两个属性。这很好用,但我想更通用。
这是我的 drawRect 方法:
- (void)drawRect:(CGRect)rect {
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.bounds;
gradientLayer.colors = [NSArray arrayWithObjects:(id)[self.startColor CGColor], (id)[self.endColor CGColor], nil];
[self.layer addSublayer:gradientLayer];
}
我想做这样的事情:
- (void)drawRect:(CGRect)rect {
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.bounds;
// colorsArray should be an IBInspectable property in order to be setted on Storyboard Attributes Inspector
gradientLayer.colors = self.colorsArray;
[self.layer addSublayer:gradientLayer];
}
【问题讨论】:
标签: ios objective-c nsarray ibdesignable ibinspectable