亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從UITableViewCell獲取UITableView?

如何從UITableViewCell獲取UITableView?

斯蒂芬大帝 2019-11-12 12:51:11
我有一個UITableViewCell鏈接到對象的對象,我需要確定單元格是否可見。從我完成的研究中,這意味著我需要以某種方式訪問UITableView包含它的對象(從那里,有幾種方法可以檢查它是否可見)。所以我想知道是否UITableViewCell有指向的指針UITableView,或者是否還有其他方法可以從單元格獲取指針?
查看完整描述

3 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

避免檢查iOS版本


id view = [tableViewCellInstance superview];


while (view && [view isKindOfClass:[UITableView class]] == NO) {

    view = [view superview]; 

}


    UITableView *tableView = (UITableView *)view;


查看完整回答
反對 回復 2019-11-12
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

在iOS7 beta 5中UITableViewWrapperView是的超級視圖UITableViewCell。也是UITableView一個的監督UITableViewWrapperView。


因此,對于iOS 7,解決方案是



UITableView *tableView = (UITableView *)cell.superview.superview;


因此,對于iOS 6以下的iOS,解決方案是



UITableView *tableView = (UITableView *)cell.superview;


查看完整回答
反對 回復 2019-11-12
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

Swift 5擴展

遞歸地

extension UIView {

    func parentView<T: UIView>(of type: T.Type) -> T? {

        guard let view = superview else {

            return nil

        } 

        return (view as? T) ?? view.parentView(of: T.self)

    }

}


extension UITableViewCell {

    var tableView: UITableView? {

        return parentView(of: UITableView.self)

    }

}

使用循環

extension UITableViewCell {

    var tableView: UITableView? {

        var view = superview

        while let v = view, v.isKind(of: UITableView.self) == false {

            view = v.superview

        }

        return view as? UITableView

    }

}


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 1464 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號