WatchKit的table

拖一个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: 方法。

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值