附加属性
系统是0.5.0
版本新增的功能,区别于普通属性
,附加属性
是专门提供给子元素
设置的。
比如:grid-panel
提供了一个column-span
的附加属性,如果子元素设置了该属性,那么在显示的时候就能跨列显示。
1 | <grid-panel columns="3" column-spacing="10" row-spacing="10"> |
附加属性
在设置属性的时候有一个特点,那就是在属性之前必须添加父元素的名称并且加上.
来连接。比如上面的grid-panel.column-span
,意味着设置了一个由grid-panel
提供的column-span
属性。
附加属性
支持数据绑定,但是只支持once
模式(默认绑定模式),这也就意味着附加属性
不支持动画
。
首先自定义元素需要实现GICLayoutElementProtocol
协议中的gic_elementAttachAttributs
方法。而且该自定义元素必须显示使用GICElementsCache
来注册,否则GIC
无法识别。
实现代码如下:
1 | +(NSArray<GICAttributeValueConverter *>*)gic_elementAttachAttributs{ |
由于该属性是提供给子元素使用的,因此需要将该value保存到子元素中。也就是通过如下代码设置value。
1 | [[target gic_ExtensionProperties] setAttachValue:value withAttributeName:GridPanelAttachColumnSpanKey]; |
使用如下方法来获取属性。
1 | [[target gic_ExtensionProperties] attachValueWithAttributeName:GridPanelAttachColumnSpanKey]; |