首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WKLongPressGestureRecognizer in WKInterfaceTable

WKLongPressGestureRecognizer in WKInterfaceTable
EN

Stack Overflow用户
提问于 2019-01-14 14:58:23
回答 1查看 257关注 0票数 3

我正在尝试将WKLongPressGestureRecognizer添加到WKInterfaceTable中的单元格。但不起作用。IBActions从不被解雇。我错过了什么诡计吗?或者这在watchOS上根本不受支持?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-18 10:31:25

万一有用的话..。我也一直在努力:在屏幕截图中“Table”下附加“长新闻手势识别器”,而不是“Group”,并链接到WKInterfaceController中的一个动作:

代码语言:javascript
复制
- (IBAction)didLongPress:(id)sender
{
if ([sender isKindOfClass:[WKLongPressGestureRecognizer class]])
    {
    WKLongPressGestureRecognizer * item=(WKLongPressGestureRecognizer *)sender;
    CGPoint p=[item locationInObject];
    NSLog(@"long press point: %f , %f. state=%d\n",p.x,p.y,[item state]);
    }
}

这不是最终的解决方案,但行动至少会被触发。不幸的是,当触发时,它会阻止didSelectRowAtIndex通过,因此很难判断哪一行已被长期按下。我对进展的最佳想法是使用p.y值来确定表中的哪一行被长时间按下。我一直在试图找出如何以编程方式确定行高或将一个位置转换为一个对象,但是到目前为止我已经失败了,所以我暂时放弃了这个功能,因为我并不真正想硬编码行高。但是,它可能会让其他人更接近解决方案,或者适合行高可以安全地进行硬编码的情况:)

我尝试过的其他路线(失败了),但对其他人来说可能是一个起点(或者节省一些时间):

  • 试图取消长新闻,所以我仍然得到行选择通过(但我可以记录我们有一个很长的新闻,所以可以采取相应的行动)。不幸的是我不知道该怎么做。我尝试了item setEnabled:false;但是它没有取消当前的长新闻。它只是阻止了所有未来的长出版社被认可。
  • 我以编程方式查找附加手势,以防这会比使用故事板提供更大的控制。我什么也没得到,而且我的研究表明,这只在iOS,而不是WatchOS中得到支持。
  • 按照贴出的问题附加手势。我也没有看到任何行为代码被调用的证据:(
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54183877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档