Iphone 使用performSelector:withObject:afterDelay:inside UIButton操作
我在UIButton的iAction中使用Iphone 使用performSelector:withObject:afterDelay:inside UIButton操作,iphone,ios,objective-c,ipad,Iphone,Ios,Objective C,Ipad,我在UIButton的iAction中使用[performSelector:@selector(reloadData)with Object:nil afterDelay:0.01],reloadData方法以特定的方式在主视图上绘制一些子视图,问题是当我快速反复点击按钮时,选择器“reloadData”执行多次,事件,尽管我正在取消之前对该选择器的所有请求,但这会导致主视图中的子视图重复 -(IBAction) myButtonIsTapped { [NSObject cancelP
[performSelector:@selector(reloadData)with Object:nil afterDelay:0.01]
,reloadData方法以特定的方式在主视图上绘制一些子视图,问题是当我快速反复点击按钮时,选择器“reloadData”执行多次,事件,尽管我正在取消之前对该选择器的所有请求,但这会导致主视图中的子视图重复
-(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
}
}
做一件事创建一个
BOOL变量
并在viewdiload
yes中设置,如果是,则检入函数,然后在buttonmake方法中调用方法并将其设为no。这是怎么回事:
-(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)比逻辑处理用户所做的事情更容易。您如何知道视图正在被复制?如果我在禁用用户交互时点击按钮,则在启用用户交互后执行的按钮操作,为什么会发生这种情况?关键是,在您想做的事情完成后,您应该再次启用该按钮。