- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的目标是 iOS 5.1 并使用 Storyboard。我在 UITableViewCell 中有一个 UIButton,当点击它时,调用“Touch Up Inside”方法,调用 Web 服务,然后在完成处理程序中,通过调用为所有按钮状态设置文本的函数来更新 UIButton 的文本像这样:
+(void) setButtonText:(NSString *)text forButton:(UIButton *)button
{
[button setTitle:text forState:UIControlStateNormal];
[button setTitle:text forState:UIControlStateDisabled];
[button setTitle:text forState:UIControlStateHighlighted];
[button setTitle:text forState:UIControlStateSelected];
}
如果您只是点击按钮,效果很好,但如果您长按它然后松开,网络服务调用和完成处理程序将被调用并立即返回,但按钮上的文本更新需要大约 5 秒的时间。我试过在按钮和 self.view 上调用 setNeedsDisplay。有什么想法可以让文本在有人长按 + 释放时立即更新吗?
最佳答案
您不一定需要检测长按,只要改变按钮触发选择器的状态即可。如果您以编程方式执行此操作,则应该有如下内容:
[self.myButton addTarget:self action:@selector(mySelector) forControlEvents:UIControlEventTouchDown];
在 XIB/Storyboard 中,该选项在“Touch Down”下的调色板中可用:
这会导致选择器在触摸按钮时立即被触发,而不是,我可以假设,你已经设置为 UIControlEventTouchUpInside
,其中当触摸在附近结束时发送事件按钮。
关于objective-c - iOS:如果您长按然后松开,UIButton 文本不会立即更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13956490/
对不起: 我只是不知道如何链接这些连续的操作? 鼠标按下然后拖动然后松开。如果用户不执行此操作,则不会发生某些操作... 我是否应该添加代码,因为已经按下了区分它? 常量 MOUSE_MOVED 不起
我正在尝试使用 native javascript - 没有 jQuery,也就是说。捏合和松开但不适用于缩小/放大。它在 iOS 和 android 上使用触摸等很好。但我不知道如何为我的 Mac-
我是一名优秀的程序员,十分优秀!