4.Eureka的逻辑架构
再回到上面那7行代码;我们发现Eureka按照从大到小的包容关系将控件分为以下几个层次:
-
View
-
TableView
-
Section
-
Row
- Value
-
Row
-
Section
-
TableView
首先,整个界面建立在View之上,然后在放入一个TableView,接下来可以为TableView分组,最终将Row按需求放在不同的组里,同时每个Row包含一个Value用来作为Model。
这意味着神马?
意味着如果你要定制所有Row的背景,你可以直接修改TableView的背景;如果你要定制某一Row的背景和字体,你可以找到该Row关联的Cell,然后去修改其中的背景和子控件的字体。
而对于IB中原来绑定事件的处理,在Eureka里使用的是闭包!
Eureka里每个Row在不同的时间点、不同的生命周期里都可以调用一些之前设置好的闭包。比如每个Row的创建时,有方法
cellSetup()
在Row状态改变时有方法
onChange()
而在Row被选中时有方法
onCellSelection()
等等。
我不会去说明所有这些方法,这些都可以在Eureka的github介绍中找到,在下面一节,本猫会完成上面输入生日的功能来演示其中一些回调方法,大家可以举一反三。