配置 @IBInspectable 属性检查器控件
Posted
技术标签:
【中文标题】配置 @IBInspectable 属性检查器控件【英文标题】:Configuring @IBInspectable Attribute Inspector controls 【发布时间】:2014-12-29 16:56:31 【问题描述】:是否可以配置@IBInspectable
属性在属性检查器中的显示和/或控制方式?例如,我有一个CGFloat
属性“Overlay Alpha”,它在检查器中显示如下:
问题在于调节器上/下箭头仅以整数 (+/- 1) 步长更新。我希望它们以小步骤更新,例如 +/- 0.05 增量。有什么办法吗?
控件的其他属性怎么样?您可以显示CGFloat
的滑块而不是数字字段吗?你能添加一个工具提示吗?可以添加静态描述性文字吗?
只是想知道我可以自定义多少显示。我想看看我可以将 IBDesignable 功能推到多远,使 IB 成为真正的 UI 设计工具。
【问题讨论】:
你有没有找到解决这个问题的方法? 不,我从来没有... ???? 太糟糕了,不过感谢发帖! 您是否看到使用不同的类型是否有效果(即double
、long
、float
、NSInteger
等)?
似乎还没有办法在 Xcode 中实现这一点。无论您使用@IBInspectable
制作什么“类型舞”,Xcode 都会将它们呈现给 default 控件(例如,UIColor
的颜色选择器、基于数字的类型的值调整器等)。但是,想知道如果您直接在字段中输入十进制值会发生什么? (在设置NSLayoutConstraint.constant
时有效)。 @Nate Cook 和其他人的一些参考资料:gist.github.com/natecook1000/4269059121ec247fbb90, medium.com/anantha-krishnan-k-g/…
【参考方案1】:
问题在于调节器上/下箭头仅以整数 (+/- 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 可能会给您一些想法。
【讨论】:
以上是关于配置 @IBInspectable 属性检查器控件的主要内容,如果未能解决你的问题,请参考以下文章