任何方法都可以让scrollviewDidScroll中的代码只执行一次?

时间:2016-04-27 14:05:25

标签: ios uiscrollview

由于滚动时会多次调用-(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

1 个答案:

答案 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;
     }
}