美文网首页
iOS编程如何判cell是否显示在界面上

iOS编程如何判cell是否显示在界面上

作者: 单线程Jack | 来源:发表于2019-07-20 11:46 被阅读0次
    判断滑动UITableView时,屏幕上对应显示的是哪个Cell
    OC
    - (NSArray*)visibleCells;
    //UITableView的方法,这个最直接,返回一个UITableviewcell的数组。
    对于自定制的cell,之后的处理可能稍微繁琐些。
    
    - (NSArray*)indexPathsForVisibleRows;
    //UITableview的又一个方法,这个比较好用了,返回一个NSIndexPath的数组,可以直接用indexpath.row去调你的table_related_Array里的数据了。比较方便用于自定制的cell。
    
    - (CGRect)rectForRowAtIndexPath:(NSIndexPath*)indexPath;
    CGRect cellR = [myTV rectForRowAtIndexPath:indx];
    if (myTV.contentOffset.y - cellR.origin.y < myCell.frame.size.height || cellR.origin.y - myTV.contentOffset.y >myTV.size.height) {
    //这个时候myCell应该是不在myTV的可视区域了。
    } else {//myCell在可视区域时,业务处理
    }
    //这个方法可以用在代理回调较多的设计中。
    
    Swift
    //获取当前视图的所有可见cell
    open var visibleCells: [UITableViewCell] { get }
    //获取当前视图中的所有可见cell的IndexPath
    
    //根据当前cell的IndexPath获取在tableView的坐标,根据cell的y坐标和
    open var indexPathsForVisibleRows: [IndexPath]? { get }
    
    //tableView的偏移量计算
    open func rectForRow(at indexPath: IndexPath) -> CGRect
    

    相关文章

      网友评论

          本文标题:iOS编程如何判cell是否显示在界面上

          本文链接:https://www.haomeiwen.com/subject/ciiylctx.html