所以我有一个 UITableViewCell 子类,它需要知道 UITableView 当前是否正在滚动以更新 UI。所以我在子类中有一个指向 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 属性是否也会反映更改?