由于滚动时会多次调用-(void)scrollViewDidScroll:(UIScrollView *)scrollView
,因此也会多次调用此方法的内部代码。
但我希望内部代码只被调用一次,在条件改变后,内部代码可以再次被调用。
我的代码:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"main %f", self.mainScrollView.contentOffset.y);
if (self.mainScrollView.contentOffset.y<99 ) {
[[NSNotificationCenter defaultCenter]postNotificationName:@"disableInteraction" object:nil];
//If satisfied the if condition, only post Notification for once, after self.mainScrollView.contentOffset.y = 0, postNotification could be call again
}
else{
[[NSNotificationCenter defaultCenter]postNotificationName:@"enableInteraction" object:nil];
}
}
如果满足if条件,只发布一次通知,在self.mainScrollView.contentOffset.y = 0之后,可以再次调用postNotification
答案 0 :(得分:0)
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
if ((self.mainScrollView.contentOffset.y<99) && (!notified)) {
[[NSNotificationCenter defaultCenter]postNotificationName:@"disableInteraction" object:nil];
notified = true;
}
else if (self.mainScrollView.contentOffset.y = 0){
[[NSNotificationCenter defaultCenter]postNotificationName:@"enableInteraction" object:nil];
notified = false;
}
}