我可以检查我的UIView @property吗?
@interface Superview : UIView
@property (nonatomic, weak, readonly) IBInspectable UIButton *stopButton;
@property (nonatomic, weak, readonly) IBInspectable PKCircleProgressView *circleProgressView;
@end我已经创建了一个可设计的视图PKCircleProgressView,我希望它可以从IB中编辑。此外,我还创建了另一个可设计视图,其中包含PKCircleProgressView作为子视图,并且我希望它也是可编辑的。
如果我在IB中使用Superview,有什么方法可以编辑circleProgressView的属性吗?
我只提出了一个想法,为两个视图创建一个通用协议,并实现如下方法:
- (void)setProgress:(CGFloat)progress {
self.circleProgressView.progress = progress;
}但是使用每个属性都不容易做到这一点,特别是如果我想创建另一个包含我的Superview的视图的话。
发布于 2015-05-30 17:05:51
IBInspectable不支持UIView或它的子类型。它支持简单的值。
如果您的自定义进度视图是IBDesignable,为什么不将它的属性(如半径和前景颜色)设置为IBInspectable,并在接口生成器中选择进度视图并更改进度视图的属性?
如果您创建了一个IBDesignable超级视图,您可能可以使用类似于Decorator模式的方式公开它的按钮和进度视图的可检查属性。
发布于 2015-06-01 16:07:12
不,你不能让UIView检查。IBInspectable的使用仅用于在NIB或情节提要中配置实例的“键值”编码属性。假设,如果UIView是关键,那么它的价值是什么?UIView没有价值,因此不能对UIView进行检查。但是,我们可以使UIView的属性可以检查,例如:
UIView的backgroundColor,宽度,高度等
https://stackoverflow.com/questions/30548476
复制相似问题