基本上,我有一个视图,其中可以包含无限数量的UIView。我希望能够设置self.numberOfSections = 8self.numberOfSections = 2,然后分别生成相同数量的UIImages,然后可以对其进行操作。

目前,无论我有2个numberOfSections还是100个numberOfSections,我的代码中都会出现许多IBInspectible图像。我想能够以我的numberOfSections数字为基础创建UIImages

ios - 当另一个属性的数量增加时,生成更多属性-LMLPHP

ios - 当另一个属性的数量增加时,生成更多属性-LMLPHP

如果在这里将Number of Sections设置为2,则可以在故事板上设置图像,但是所有其他IBInspectable元素也会出现,因为只有2个部分,因此也不会使用。有没有办法只让需要的东西出现?我想在情节提要中设置图像。有没有一种方法可以将其重构为不包含太多的IBInspectables?

这就是我将图像设置为代码中各种以编程方式生成的视图的方式。

-(void)drawRect:(CGRect)rect

    for (int i = 0; i < self.numberOfSections; i++) {
       NSString *rotaryName = [NSString stringWithFormat:@"rotaryImage%d", i + 1];
       id rotaryNameValue = [self valueForKey:rotaryName];
       [self.sectorView setValue:rotaryNameValue forKey:@"image"];
    }
}

最佳答案

首先,我要说您的设计模式存在缺陷。如果您有那么多IBInspectable UIImageView实例,则可能应该使用IBOutletCollection

其次,您的要求是不可能的。为什么不创建单个IBInspectable值类型来设置情节提要中的部分数量,并根据该数字以编程方式生成UIImageView对象?

@property (nonatomic, assign) IBInspectable int *sections;

ios - 当另一个属性的数量增加时,生成更多属性-LMLPHP

07-24 09:36