在Inspectable 中编辑view 属性
来源:互联网 发布:行知学园地址 编辑:程序博客网 时间:2024/05/19 05:01
IBInspectable
在 Xcode 6,你现在可以指定任何属性作为可检查项并为你的自定义类建立了一个用户界面。
例如,在一个 UIView
子类里,这些属性用它们的值来更新背景层:
@IBInspectable var cornerRadius: CGFloat = 0 { didSet { layer.cornerRadius = cornerRadius layer.masksToBounds = cornerRadius > 0 }}@IBInspectable var borderWidth: CGFloat = 0 { didSet { layer.borderWidth = borderWidth }}@IBInspectable var borderColor: UIColor? { didSet { layer.borderColor = borderColor?.CGColor }}
标有 @IBInspectable
(或是 Objective-C 中的 IBInspectable
),他们就可以很容易在 Interface Builder 的观察面板(inspector panel)里编辑。需要注意的是 Xcode 在这里做了更多的事,属性名称是从 camel- 转换为 title- 模式 并且相关的名称组合在一起:
因为可检查属性仅仅是用户定义的运行时属性顶部的接口,所以支持相同的类型列表:布尔,字符串和数字(即,NSNumber
或任何数值类型),以及 CGPoint
、CGSize
、CGRect
、UIColor
和 NSRange
,额外增加了 UIImage
。
IBDesignable
如果这还不够,IBDesignable
自定义视图也在 Xcode 6 中亮相了。当应用到 UIView
或 NSView
子类中的时候,@ IBDesignable
让 Interface Builder 知道它应该在画布上直接渲染视图。你会看到你的自定义视图在每次更改后不必编译并运行你的应用程序就会显示。
标记一个自定义视图为 IBDesignable
,只需在类名前加上 @IBDesignable
的前缀(或是 Objective-C 里的 IB_DESIGNABLE
宏)。你的初始化、布置和绘制方法将被用来在画布上渲染你的自定义视图:
@IBDesignableclass MyCustomView: UIView { ...}
从这个功能上节约的时间是不能被低估的。加上 IBInspectable
属性,一个设计师或开发人员可以轻松地调整自定义控件的呈现,以得到她想要的确切的结果。任何改变,无论是从代码或属性检查器中,都将立即呈现在画布上。
此外,任何问题都是可避开编译和运行整个程序来调试的。调试的方法很简单,只需在你的代码中设置一个断点,在 Interface Builder 中选择视图,并选择 Editor ➔ Debug Selected Views。
由于在 Interface Builder 中呈现自定义视图不会有应用程序的完整上下文,你可能需要生成模拟数据以便显示,例如一个默认用户头像图片或仿制的天气数据。有两种方法可以为这个特殊的上下文添加代码:
prepareForInterfaceBuilder()
:此方法与你代码的其余部分一起编译,但只有当视图正在准备在 Interface Builder 显示时执行。
TARGET_INTERFACE_BUILDER
:#if TARGET_INTERFACE_BUILDER
预处理宏在 Objective-C 或 Swift 下都是工作的,它会视情况编译正确代码:Swift#if !TARGET_INTERFACE_BUILDER // this code will run in the app itself#else // this code will execute only in IB#endif
- 在Inspectable 中编辑view 属性
- [Inspectable]
- 在自定义View中使用自定义属性
- 如何自定义View及在配置文件中增加描述属性
- android在自定义view中自定义属性的方法
- 【Android】如何在自定义View中设置自定义的属性
- 在自定义view中获取android layout_width等属性值
- 自定义View及在配置文件中增加描述属性
- android在代码中设置View的属性
- View 自定义属性在 XML 中没有代码提示问题
- 在vspackage中使用DTE中的属性框窗口编辑属性
- 关于android view属性的归属以及如何在代码中设置相关属性总结
- 在代码中,子view设置的属性在viewGroup中无效的问题解决
- 自定义View中自定义属性
- Android中View属性大全
- 关于View中xml属性
- 实现PointF和SizeF的属性在PropertyGrid中可编辑的方法
- 如何在ABAP ALV中具体的控制每个格子中的编辑属性
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
- 清理缓存iOS
- JSP大学实用教程(第2版)代码一
- IOS 拍照,系统相册 拿照片地理位置,还有修改时间最新时间
- VC实现俄罗斯方块的基本功能
- 在Inspectable 中编辑view 属性
- webView 与JS交互
- Android studio继承BaseAdapter时不自动出现getCount等方法
- adb server无法启动方法,结束占用端口的进程
- Memcache的最佳实践方案
- 主动通知Android系统图库进行更新
- PHP session 失效不传递的解决办法
- Jquery dom查找方法 性能分析
- android中xml tools属性详解