配置@IBInspectable Attribute Inspector控件

时间:2014-12-29 16:56:32

标签: ios xcode macos ibdesignable

是否可以在Attribute Inspector中配置@IBInspectable属性的显示和/或控制方式?例如,我有一个CGFloat属性" Overlay Alpha"在检查员中出现如下:

enter image description here

问题是调节器上/下箭头仅以整数(+/- 1)步进更新。我希望它们以小步骤更新,比如+/- 0.05增量。有没有办法做到这一点?

控件的其他属性如何?您可以显示CGFloat而不是数字字段的滑块吗?你能添加一个工具提示吗?你能添加静态描述性文字吗?

只是想知道我可以自定义多少显示器。我试图看看我能在多大程度上推动IBDesignable功能,使IB成为一个真正的UI设计工具。

1 个答案:

答案 0 :(得分:0)

  

问题是调节器上/下箭头仅以整数(+/- 1)步进更新。我希望它们以小步骤更新,比如+/- 0.05增量。有没有办法做到这一点?

缺少任何解释如何操作的文档以及您的问题已超过3年的事实表明您实际上无法更改IB中可检查属性的步进器的增量值。

可以做的是根据您要调整的属性创建另一个属性,并缩放该属性,使增量1对应于您想要的大小的步数。例如,设计师可能习惯于根据百分比来考虑不透明度,因此您可以使用getter和setter创建alphaPercent属性,将alpha属性向上扩展100:

@IBInspectable var alphaPercent : CGFloat {
    get {
        return self.alpha * 100
    }
    set(percentage) {
        self.alpha = percentage / 100
    }
}

如果您将该属性添加到@IBDesignable视图,则每次点击都可以使用步进器将视图的不透明度更改为1%。

  

控件的其他属性如何?你能为CGFloat而不是数字字段显示一个滑块吗?你能添加一个工具提示吗?你能添加静态描述性文字吗?

目前这些都不可能。如果您长期需要技术较少的用户进行用户界面调整(例如,如果您为许多不同的客户设置相同的基本应用程序),那么构建一个提供的应用程序版本可能是有意义的。编辑模式。查看Tweaks framework from Facebook可能会给您一些想法。