watchOS系统开发 - WKInterfaceTable(5)

WKInterfaceTable类似于iOS中的UITableView, 与UITableView不同的是, WKInterfaceTable没有section的概念.

屏幕快照 2017-08-02 下午4.24.30.png

table使用
首先, 在sb中添加一个controller, 然后在controller里面添加一个WKInterfaceTable控件

像下面这样, 每一个WKInterfaceTable默认有两个占位的控件, 一个Table Row一个Group


屏幕快照 2017-08-02 下午5.42.56.jpg

接下来添加两个label, 设置Group的Layout为Vertical, 让label垂直排列, 设置Size的Height为Size To Fit Content, 让Group的大小根据label的内容自适应.

在iOS中每一个TableViewController都是使用TableViewCell进行显示的, 但是在WatchOS中, 很抱歉, 没有cell, 在WatchOS中, 可以直接使用继承自NSObject的对象来表示cell.
我们新建一个table row, 并把两个label进行outlet链接

import WatchKit

class RecipeRowController: NSObject {

    @IBOutlet var titleLabel: WKInterfaceLabel!
    
    @IBOutlet var ingredientsLabel: WKInterfaceLabel!
    
}

在iOS中, 采用delegate和dataSource的方式来组织数据与进行事件的代理回调, 但是在WatchOS中, 也没有. 在WatchOS中, 我们采用更直接的方式, 有两个方发用来显示数据.

首先需要把WKInterfaceTable连接到控制器

     @IBOutlet var table: WKInterfaceTable!

接下里设置数据源, 与显示数据

//这个方法用来设置显示几个cell, 第一个参数是个数, 第二个参数是cell的唯一标识符(标识符的设置方法与TableViewCell的设置方法一样)
        table.setNumberOfRows(10, withRowType: "RecipeRowType")

这个方法是通过index来获取对应的cell

        let controller = table.rowController(at: 2) as! RecipeRowController
        controller.titleLabel.setText("recipe.name")
        controller.ingredientsLabel.setText(" ingredients")

最终效果


Jietu20170802-205457-HD.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述在iOS开发中UITableView可以说是使用最广泛的控件,我们平时使用的软件中到处都可以看到它的影子,类似...
    liudhkk阅读 9,101评论 3 38
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 1.获取bitmap大小
    梦凝天阅读 284评论 0 0
  • 2015年10月3日,晚8点半的飞机。 早上起来洗澡,收拾屋子,伺候宝贝们,将他们在家的食物准备妥当。 另外一只主...
    淼沁侑子阅读 392评论 0 3
  • 今日九一八,夜梦略有惊扰。白天工作时看消息说各地拉响了防空警报,也许是距离的缘故,我这里未曾听到。 每到一年的这一...
    化浊阅读 276评论 0 0