上篇文章向大家演示了如何创建一个Helloworld Apple Watch App。这篇文章向大家演示如何使用WatchKit给你的Watch App创建Table。我们在Helloworld项目的基础上进行完善。
创建一个Table
打开Interface.storyboard文件,删除我们之前添加的Label,然后将一个Table组件拖拽到你的Watch屏幕中。
这里要注意一下,WatchKit中每一个WKInterfaceTableRow都是一个Table Row Controller,如果你展开它,你会发现它里面有一个Group,我们分别将一个Label和Image组件拖拽至Group中。调整Label和Image的大小,调整到你觉得合适就可以。
创建自定义的Table Row Controller
我们选中TableRowController,然后选择右侧工具栏的Identify inspector,我们可以在Custom Class一栏中看到,其实TableRowController是一个NSObject。
我们可以创建一个自己的NSObject,然后将TableRowController的class设置为我们创建的NSObject,这样就达到了自定义的目的。我们在HelloworldWatchKit WatchKit Extension目录中创建一个Swfit文件,让它继承NSObject,然后导入WatchKit框架。
将TableRowController的class设置为MyTableRowController
,并给它设置一个Identifier。
现在你就可以在MyTableRowController
中添加Label和Image的IBOutlet了。
创建数据源
我们知道,在UIKit的UITableView
或者UITableViewController
中都有DataSource,负责Table Row中的数据,但是在WatchKit中的TableRowController并没有DataSource,但是这个概念是有的,也就是说我们要为TableRowController创建一个数据源,不论是数组还是字典。在这里,我们创建一个数组,作为TableRowController的数据源,数组中的元素都是String
。因为我们的TableRowController中有一个Image组件、一个Label组件,所以我们将图片的名字作为数组的元素。
我们在InterfaceController
中创建一个数据源weather
数组,数组元素是图片名称,然后创建Table的IBOutlet。
加载数据源
我们在InterfaceController
中添加loadTableData()
方法,然后在init()
方法中调用。
现在编译运行一下,你就会看到Watch中显示出了Table,是不是很酷呢!