gpt4 book ai didi

iphone - 使用 performSelector :withObject: afterDelay: inside UIButton action

转载 作者:行者123 更新时间:2023-12-01 19:13:24 25 4
gpt4 key购买 nike

我正在使用 [performSelector:@selector(reloadData) withObject:nil afterDelay:0.01]在 UIButton 的 IBAction 中,reloadData 方法以特定方式在主视图上绘制了一些 subview ,问题是当我快速反复点击按钮时,选择器“ReloadData”多次执行,尽管我取消了所有以前的请求到该选择器,这会导致主视图中的 subview 重复

-(IBAction) myButtonIsTapped
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(reloadData) object:nil];

[self performSelector:@selector(reloadData) withObject:nil afterDelay:0.01];

}

并重新加载数据方法,如下所示:
-(void) reloadData
{
@synchronized(self){
// clear all subviews from the main view
// draw new subviews
}
}

最佳答案

那这个呢:

-(IBAction) myButtonIsTapped
{
[self.myButton setUserInteractionEnabled:NO];

[self performSelector:@selector(reloadData) withObject:nil afterDelay:0.01];

}

-(void) reloadData
{
// Long task...
// Enable the button again:
[self.myButton setUserInteractionEnabled:YES];

}

有时,控制用户正在做什么(UI)比从逻辑上处理他所做的事情更容易。

关于iphone - 使用 performSelector :withObject: afterDelay: inside UIButton action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14872490/

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