IBInspectable UIView属性

Ber*_*rgP 3 interface-builder uiview ios ibdesignable

我可以让我的UIView @property可以检查吗?

@interface Superview : UIView 
    @property (nonatomic, weak, readonly) IBInspectable UIButton *stopButton;
    @property (nonatomic, weak, readonly) IBInspectable PKCircleProgressView *circleProgressView;
@end
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个可设计的视图PKCircleProgressView,我希望它可以从IB编辑.此外,我创建了另一个可设计的视图,其中包含PKCircleProgressView作为子视图,我希望它也可以编辑.

如果我在IB中使用Superview,有没有办法编辑circleProgressView的属性?

我只想出一个想法,为两个视图创建一个通用协议,并实现如下方法:

- (void)setProgress:(CGFloat)progress {
    self.circleProgressView.progress = progress;
}
Run Code Online (Sandbox Code Playgroud)

但是对每个属性都不容易,特别是如果我想创建另一个包含我的Superview的View.

Tob*_*ias 5

IBInspectable不支持UIView或它的子类型.它支持简单的值.

如果您的自定义进度视图是IBDesignable,为什么不将其半径和前景色等属性设置为IBInspectable,并在界面构建器中选择进度视图并更改进度视图的属性?

如果您创建IBDesignable超级视图,您可以使用Decorator模式之类的东西公开它的按钮和进度视图的可检查属性.

Apple的文档