したがって、UITableViewが現在スクロールしているかどうかをUIを更新するために知る必要があるUITableViewCellサブクラスがあります。したがって、サブクラスの UITableView を指すプロパティがあり、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];
}
Is scrolling は基本的に、スクロール ビューがスクロールしているかどうかを示す NSNumber です。これを UITableViewCell に渡して、後でクラスで使用して、状態がスクロールしているかどうかを確認します。KVO を使用する予定でしたが、BOOL だけでそれを行うことは不可能です (可能であればお知らせください)。これを行うよりエレガントな方法はありますか?
次のように、UITableViewCellに割り当てプロパティがあります
@property (nonatomic, assign) BOOL isScrolling
そして、UITableViewCell サブクラスを開始するときに、UITableView の isScrolling で isScrolling を割り当てています。このアプローチに関する私の最大の懸念は、UIScrollView デリゲートの isScrolling を変更した場合、UITableViewCell サブクラスの isScrolling プロパティにも変更が反映されるかということだと思います。