有一种方法可以NSArray IBInspectable在Storyboard自定义视图中定义多个值吗?
我知道NSArray没有关于将存储在其中的对象类型的任何信息,所以它可能是一个问题.但是有一些解决方案使用注释或其他东西?
我想要做的是设置NSArray的UIColors通过故事板和可视化的故事板绘制在视图中的渐变层.
我开始创建两个名为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];
}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
- (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];
}
Run Code Online (Sandbox Code Playgroud)