gpt4 book ai didi

objective-c - iOS:如果您长按然后松开,UIButton 文本不会立即更改

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:06 25 4
gpt4 key购买 nike

我的目标是 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”下的调色板中可用:

enter image description here

这会导致选择器在触摸按钮时立即被触发,而不是,我可以假设,你已经设置为 UIControlEventTouchUpInside,其中当触摸在附近结束时发送事件按钮。

关于objective-c - iOS:如果您长按然后松开,UIButton 文本不会立即更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13956490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com