标签: wkinterfacetable

如何在WatchKit tableview中重新加载数据?

我有一个带有Tableview的iPhone应用程序,其数据来自CoreData.

在此输入图像描述

相同的数据也会显示在观看应用中:

在此输入图像描述

如果我从iPhone应用程序中添加一行:

在此输入图像描述

我在Watch应用程序中重新加载数据:

在此输入图像描述

我看到旧行空了!

在此输入图像描述

如果停止手表应用程序并重新启动它,一切都会正确显示!

在此输入图像描述

这是在Watch应用程序中填充Tableview的代码

-(void)awakeWithContext:(id)context{
    [super awakeWithContext:context];
       [self loadTable];
}

-(void)loadTable{
    NSLog(@"loadTableData");
    NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Data"];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Data"
        inManagedObjectContext:managedObjectContext];
    [fetchRequest setEntity:entity];

    NSSortDescriptor *sortByDate = [[NSSortDescriptor alloc] initWithKey:@"sortedDateAndTime" ascending:NO];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortByDate, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];
    self.watchMArray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];

  //  [self.watchTableView setRowTypes:self.watchMArray];
    [self.watchTableView setNumberOfRows:self.watchMArray.count withRowType:@"data"];

    for (NSInteger i = 0; i < self.watchMArray.count; i++)
    {
        WatchTableCell *cell = [self.watchTableView rowControllerAtIndex:i];
        NSManagedObject *data = …
Run Code Online (Sandbox Code Playgroud)

iphone core-data ios watchkit wkinterfacetable

19
推荐指数
2
解决办法
9645
查看次数

17
推荐指数
1
解决办法
2730
查看次数

WatchOS在WKInterfaceTable中滚动到下一行

Apple自己的Activity应用程序有一个有趣的功能,我尝试在我自己的手表应用程序中重新实现:活动应用程序中的每个页面都是可滚动的,基本上有2个垂直页面.第一页是圆圈,第二页显示更多信息.

但是这些页面在使用数字表冠时通常不会向上和向下滚动 - 它们会拍摄.所以你不能在页面之间滚动.Apple似乎使用了WKInterfaceTable两行但我没有找到任何文档如何实现捕捉行为.

他们是如何做到的呢?

scroll watchkit wkinterfacetable watchos watchos-2

15
推荐指数
1
解决办法
488
查看次数

为什么WKInterfaceTable的方法rowControllerAtIndex返回nil?

当我运行下面的代码时,返回的方法rowControllerAtIndexWKInterfaceTablenil.

[self.outletTable setNumberOfRows:numberOfCategoriesToShow withRowType:@"rowTypeLabel"];
RowControllerTypeLabel *theRow = [self.outletTable rowControllerAtIndex:rowInTable];
Run Code Online (Sandbox Code Playgroud)

我检查了什么:

  1. 我已经在故事板中的行和界面中的相应属性之间建立了连接RowControllerTypeLabel.
  2. 我已将Custom Class标签的字段设置为我的自定义类RowControllerTypeLabel.
  3. 我还在故事板中的表和我的接口控制器界面中的相应属性之间建立了连接.

我错过了什么?

objective-c ios watchkit wkinterfacetable

10
推荐指数
3
解决办法
1701
查看次数

Watchkit:动态行中包含两个模板的表

如何在WKInterfaceTable中实例化两个不同的动态行模板?对于一个模板,我使用函数

 [self.stocksTable setNumberOfRows: self.stocksData.count withRowType:@"TableRow"];
 TableRow *row = [self.stocksTable rowControllerAtIndex:i];
Run Code Online (Sandbox Code Playgroud)

问题:如何有两种类型的行?

ios apple-watch watchkit wkinterfacetable

8
推荐指数
1
解决办法
2786
查看次数

如何在WKInterfaceTable中创建节

我们如何在表中创建部分,因为没有委托.是否有任何其他方式来创建部分或我们必须使用两个表.

ios apple-watch watchkit wkinterfacetable

8
推荐指数
2
解决办法
2946
查看次数

Apple Watch Table - 前4行没有出现

WKInterfaceTable在Apple Watch上添加行时遇到问题.奇怪的是,无论我做什么,前4行都显示为空.我尝试手动和循环添加行 - 无关紧要.我相信我的代码很好,因为第5行和更多行看起来很好.这是发生的事情:

空行

进一步滚动:

在此输入图像描述

我的代码:

import Foundation
import WatchKit

class TableInterfaceController: WKInterfaceController{

    @IBOutlet weak var agentTable: WKInterfaceTable!

    let agents = ["The Dude","Walter","Donnie","Maude","Knox","Karl","Nihilist 2"]

    override init(){
        super.init()
        loadTableData()
    }


    private func loadTableData(){
        agentTable.setNumberOfRows(agents.count, withRowType: "AgentTableRowController")
        println("Count: \(agents.count)")

        for(index,agentName) in enumerate(agents){
            let row = agentTable.rowControllerAtIndex(index) as AgentTableRowController
            println(agentName, index)
            row.agentLabel.setText(agentName)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.这可能是微不足道的.我在Yosemite 10.10.2上运行Xcode 6.2(6C131e)

ios swift apple-watch watchkit wkinterfacetable

6
推荐指数
1
解决办法
1126
查看次数

我的WatchKit wkinterfacetable不会滚动

尽管有更多元素而不是适合屏幕,我似乎无法通过模拟器或实际手表中的触摸或滚轮获得滚动行为.

模拟器,故事板

scroll watchkit wkinterfacetable

6
推荐指数
2
解决办法
985
查看次数

Apple手表:如何仅滚动表格内容,而不是整个手表用户界面?

为了学习手表编程,我设置了一个只包含图像和表格的小测试应用程序:

在此输入图像描述

该应用程序由iOS和手表模拟器执行.应用程序正确设置了图像和表格内容.

当桌子太长而无法完全放在手表屏幕上时,我希望点击桌子可以让它滚动桌面内容.但是,滚动完整的手表内容,包括图像(请注意绿色磁盘已滚动一半不在视线范围内):
在此输入图像描述

我该怎么做才能将图像固定在屏幕上,同时允许表格内容垂直滚动?

storyboard apple-watch watchkit wkinterfacetable watchos

6
推荐指数
1
解决办法
828
查看次数

WKInterfaceTable 和 setNumberOfRows 崩溃“在展开可选值时意外发现 nil”

我正在使用 WatchKit,我有一个简单的界面,只有一个表,但我只用几行代码就得到了一个错误,也许我忘记了一些非常基本的东西。

我的界面:

表内的行具有标识符:

和自定义类:

控制器由以下代码实现:

import WatchKit
import Foundation

class ActiveListController: WKInterfaceController
{
    @IBOutlet weak var tableView: WKInterfaceTable!

    override func awakeWithContext(context: AnyObject?)
    {
        super.awakeWithContext(context)

        loadData()
    }

    override func willActivate()
    {
        // This method is called when watch view controller is about to be visible to user
        super.willActivate()
    }

    override func didDeactivate()
    {
        // This method is called when watch view controller is no longer visible
        super.didDeactivate()
    }

    func loadData()
    {
        tableView.setNumberOfRows(10, withRowType: "ItemRow") // GET ERROR

        for index in …
Run Code Online (Sandbox Code Playgroud)

ios swift watchkit wkinterfacetable wkinterfacecontroller

5
推荐指数
1
解决办法
988
查看次数