如何在 WKInterfaceTable 中创建部分

Posted

技术标签:

【中文标题】如何在 WKInterfaceTable 中创建部分【英文标题】:How to create sections in WKInterfaceTable 【发布时间】:2015-03-02 06:26:52 【问题描述】:

我们如何在表中创建部分,因为它没有委托。还有没有其他方法可以创建部分,还是我们必须使用两个表。

【问题讨论】:

【参考方案1】:

WKInterfaceTable 不像 UITableView 那样灵活,但是你可以手动创建行,使用不同的行类型。并根据其类型为每个单元格填充内容。

查看文档:

Apple Watch Programming Guide: Tables

WatchKit Framework Reference: WKInterfaceTable

例如,让我们创建一个具有两种行类型的表:

headerRowType

detailRowType

#define type1 @"HeaderRowType"
#define type2 @"DetailRowType"

// You also must create two classes: HeaderRowType and DetailRowType - controllers for these two types

// preparing datasource: fill rowTypes and tableObjects
NSArray* rowTypes = @[type1, type2, type2, type2, type1, type2, type2]; // types for table with 1 header cell and 3 detail cells in first "section", 1 header and 2 detail cells in second "section"

// set types! self.someTable - WKInterfaceTable, associated with table in UI
[self.someTable setRowTypes:rowTypes];

for (NSInteger i = 0; i < rowTypes.count; i++)

    NSString* rowType = self.rowTypes[i];
    if ([rowType isEqualToString:type1])
    
        // create HeaderRowType object and fill its properties. There you also can parse any data from main iPhone app.
        HeaderRowType* type1Row = [self.someTable rowControllerAtIndex:i];
        // type1Row.property1 = ...;

    
    else
    
        DetailRowType* type2Row = [self.someTable rowControllerAtIndex:i];
        // type2Row.property1 = ...;
        // type2Row.property2 = ...;
    

完成!发挥您的想象力并创建更复杂的数据结构。

【讨论】:

如果你只想要一个标题,只需拖动一个带有标签的组并将其放在 WKInterfaceTable 上方即可。【参考方案2】:

WatchKit 表没有节、页眉、页脚、编辑、搜索、数据源或委托。

【讨论】:

长呼吸.. AAAhhh sighhh【参考方案3】:

WatchKit API 不提供表格部分。但是部分只是一组带有额外页眉/页脚视图的单元格,可以使用自定义设计的单元格来模拟:

我创建了简单的WKInterfaceTable extensions,用于帮助管理表格。下载Sample app。

【讨论】:

以上是关于如何在 WKInterfaceTable 中创建部分的主要内容,如果未能解决你的问题,请参考以下文章

使用 CoreData 时如何与 Watch OS 2 共享数据以显示在 WKInterfaceTable 中

WKInterfaceTable:像股票邮件应用一样滑动编辑

在 WKInterfaceTable 行中放置一个图像和两个标签

WKInterfaceTable rows - 删除圆形矩形

WKInterfaceGroup 内的 WKInterfaceTable 后面有静态 BG 图像?

滚动到 WatchKit 中 WKInterfaceTable 的顶部?