WatchKit的table

来源:互联网 发布:猎人mm 源码 编辑:程序博客网 时间:2024/05/22 10:20

拖一个WKInterface table对象到storyboard中时,Xcode默认创建一个初始化的行控制器,但是你也可以自己添加更多的行。当你在拖一个table对象到storyboard中时,这个table的结构是Table->Table Row Controller->Group,创建方法如下:


  1. storyboard中选择table对象(选择的时候不要直接点击storyboard中的table对象,这个只能选中Table下的Group,而要先打开Document Outline,从侧边导航栏中选择Table
  2. 打开Attributes inspector
  3. Rows属性就是用来控制行数的

每一行最终就是一个group,所以在group中可以添加想加的控件如:labelsimages等等。效果如下图:


接下来为行控制器定义一个类用来编辑行里的控件:

  1. WatchKit extension新建一个Cocoa Touch
  2. 使你的新类继承NSObject
  3. 为行里的控件添加property或者action(可能部分人添加property时会出现错误,那是因为没有包含头文件#import<WatchKit/WatchKit.h>//吐槽一下,官网上也不提醒一下

如果是多行还得为每一行定义一个独一无二的identifier

  1. storyboard中选择行控制器对象
  2. 为每一行设置identifier
  3. 为行控制器设置类,就是选择Row Controller后在Identity inspector->Custom Class->Class中填自己定义的类名
  4. 将控件和属性连接起来
前三个步骤如下面三个截图,控件和属性连接就不用我说了吧(注意一定要选择row controller,如下图的mainRowType)


下面就和tableViewController中差不多,在运行时配置每一行的内容即在interface controller中添加如下代码:

- (void)configureTableWithData:(NSArray*)dataObjects {    [self.table setNumberOfRows:[dataObjects count] withRowType:@"mainRowType"];    for (NSInteger i = 0; i < self.table.numberOfRows; i++) {        RowController* theRow = [self.table rowControllerAtIndex:i];        [theRow.rowLabel setText:[dataObjects objectAtIndex:i]];    }}
如果要编辑选中的一行的话,可以实现table:didSelectRowAtIndex:方法。

最后贴一张运行的效果图:




0 0
原创粉丝点击