如何使用WatchKit创建Table

上篇文章向大家演示了如何创建一个Helloworld Apple Watch App。这篇文章向大家演示如何使用WatchKit给你的Watch App创建Table。我们在Helloworld项目的基础上进行完善。

创建一个Table

打开Interface.storyboard文件,删除我们之前添加的Label,然后将一个Table组件拖拽到你的Watch屏幕中。

pic

这里要注意一下,WatchKit中每一个WKInterfaceTableRow都是一个Table Row Controller,如果你展开它,你会发现它里面有一个Group,我们分别将一个Label和Image组件拖拽至Group中。调整Label和Image的大小,调整到你觉得合适就可以。

pic

创建自定义的Table Row Controller

我们选中TableRowController,然后选择右侧工具栏的Identify inspector,我们可以在Custom Class一栏中看到,其实TableRowController是一个NSObject

pic

我们可以创建一个自己的NSObject,然后将TableRowController的class设置为我们创建的NSObject,这样就达到了自定义的目的。我们在HelloworldWatchKit WatchKit Extension目录中创建一个Swfit文件,让它继承NSObject,然后导入WatchKit框架。

pic

将TableRowController的class设置为MyTableRowController,并给它设置一个Identifier。

pic

pic

现在你就可以在MyTableRowController中添加Label和Image的IBOutlet了。

pic

创建数据源

我们知道,在UIKit的UITableView或者UITableViewController中都有DataSource,负责Table Row中的数据,但是在WatchKit中的TableRowController并没有DataSource,但是这个概念是有的,也就是说我们要为TableRowController创建一个数据源,不论是数组还是字典。在这里,我们创建一个数组,作为TableRowController的数据源,数组中的元素都是String。因为我们的TableRowController中有一个Image组件、一个Label组件,所以我们将图片的名字作为数组的元素。

我们在InterfaceController中创建一个数据源weather数组,数组元素是图片名称,然后创建Table的IBOutlet。

pic

加载数据源

我们在InterfaceController中添加loadTableData()方法,然后在init()方法中调用。

pic

现在编译运行一下,你就会看到Watch中显示出了Table,是不是很酷呢!

pic

pic

分享到: