怎么判断某个cell是否显示在屏幕上

 时间:2024-11-15 12:03:21

最近小编收到很多问题,其中一个就是下面小编为大家整理一下关于怎么判断某个cell是否显示在屏幕上的步骤,希望这些方法能够帮助到大家。

怎么判断某个cell是否显示在屏幕上

工具/原料

电脑

方法/步骤

1、首先,在成为某个视图的子视图时,先移除之前的kVO,然后对视图层级中所有class为UIScrollView的contentSize添加KVO。

怎么判断某个cell是否显示在屏幕上

2、然后,输入程序-(void)didMoveToSuperview{[s娣定撰钠elfunKVO];UI蕺清寤凯View*aView=self.superview;while(aView){if([aViewisKindOfClass:[UIScrollViewclass]]){[selfobserver:aViewforKeyPath:@"contentSize"options:NSKeyValueObservingOptionNewcontext:(void*)__LINE__];}aView=aView.superview;}}

怎么判断某个cell是否显示在屏幕上

3、然后,需要设置TableViewseparatorStyle属性UITableViewCellSeparatorStyleNone即除划。代码:tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

怎么判断某个cell是否显示在屏幕上

4、当然,如果记录KVO了哪些视图的,方便及时移除:-(BOOL)isDisplayedInScreen{if(self==nil){returnFALSE;}CGRectscreenRect=[UIScreenmainScreen].bounds;

怎么判断某个cell是否显示在屏幕上

5、然后,打印监测到的值变化:staticNSMutableArray*rec娣定撰钠eiverArr; stat足毂忍珩icSunTableViewCell*cell; -(void)observer:(NSObject*)receiverforKeyPath:(NSString*)keyPathoptions:(NSKeyValueObservingOptions)optionscontext:(void*)context{ if(cell&&cell!=self){ return; } cell=self; [receiveraddObserver:selfforKeyPath:keyPathoptions:optionscontext:context]; if(!receiverArr){ receiverArr=[NSMutableArrayarray]; } [receiverArraddObject:receiver]; } -(void)dealloc{ [selfunKVO];

怎么判断某个cell是否显示在屏幕上

6、最后,获取该view与window交叉的RectCGRectintersectionRect=CGRectIntersection(rect,screenRect);if(CGRectIsEmpty(intersectionRect)||CGRectIsNull(intersectionRect)){returnFALSE;}returnTRUE;}

怎么判断某个cell是否显示在屏幕上

如何查手机生产日期 手机生产日期怎么查 怎么查看手机生产日期 怎么看手机生产日期 手机出厂日期查询方法
热门搜索
家具广告图片 英国电影 大电影 圆明园的毁灭图片 驴图片大全