小编Wal*_*ace的帖子

使NSArray IBInspectable

有一种方法可以NSArray IBInspectable在Storyboard自定义视图中定义多个值吗?

我知道NSArray没有关于将存储在其中的对象类型的任何信息,所以它可能是一个问题.但是有一些解决方案使用注释或其他东西?

我想要做的是设置NSArrayUIColors通过故事板和可视化的故事板绘制在视图中的渐变层.

我开始创建两个名为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)

objective-c nsarray ios ibdesignable ibinspectable

9
推荐指数
1
解决办法
3045
查看次数

标签 统计

ibdesignable ×1

ibinspectable ×1

ios ×1

nsarray ×1

objective-c ×1