因此,我有一個UITableViewCell子類,需要知道UITableView當前是否正在滾動或不更新UI。所以我不得不指向子類中的UITableView財產,我有以下方法代表了UIScrollView的委託:檢查UIScrollView是否從子區域滾動
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat scrollOffset = scrollView.contentOffset.y;
CGFloat contentHeight = scrollView.contentSize.height - kLoadMoreOffset;
if (scrollOffset >= contentHeight && loadMore && [self.nextPaginationURL_ isNotNull]){
loadMore = NO;
[self loadMore];
}
self.isScrolling = [NSNumber numberWithInt:1];
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (!decelerate){
self.isScrolling = [NSNumber numberWithInt:0];
NSLog(@"FIRING NOTIF END DRAGGING");
[self showLoadMore];
}
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"FIRING NOTIF END DECEL");
self.isScrolling = [NSNumber numberWithInt:0];
[self showLoadMore];
}
正在滾動本質上是一個NSNumber的指示滾動視圖是否滾動與否。我將這個傳遞給UITableViewCell以便稍後在類中使用,以查看狀態是否正在滾動。我打算使用KVO,但僅僅使用BOOL是不可能的(或者如果有可能讓我知道)。有沒有更優雅的方式來做到這一點?
我有我的UITableViewCell的指派屬性如下
@property (nonatomic, assign) BOOL isScrolling
,當我INITING我的UITableViewCell子類,我assinging與isScrolling上的UITableView isScrolling。我想我最關心的這種方法是,如果我改變了UIScrollView委託的isScrolling,UITableViewCell子類的isScrolling屬性是否也反映了這種變化?