当UITableViewCell的accessoryType被选中时?

时间:2017-07-04 07:04:55

标签: ios swift uitableview

我正在为UITableView原型单元使用storyboard,并将accessoryType设置为Disclosure Indicator。箭头1">"。我想知道什么时候添加了箭头图像或者我在哪里可以正确地获取它?

这是我想要的UIImageView

http://plnkr.co/edit/zCcyPTG3EybL4IjsOpz4?p=preview

我的test()功能打印[],只有当我滚动tableview然后打印正确。

[<UIImageView: 0x7fc614766050; frame = (0 0; 8 13); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x618000435f00>> - (null)]

我也尝试过: cellForRowAtwillDisplay,只有通过滚动它UIImageView才能获得tableView

我的自定义UITableViewCell课程:

class TestCell: UITableViewCell {

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
        test()
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        test()
        self.accessoryType
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        test()
    }

    func test() {
        print(subviews[2].subviews)
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        test()
        // Configure the view for the selected state
    }
}

1 个答案:

答案 0 :(得分:0)

您覆盖自定义单元格类的layoutSubviews,并且在调用它时,首先委托超级类,然后一遍又一遍地检查视图层次结构,直到找到它为止。

这是你得到的最好的。当你处理不属于你的私人视图层次结构时,不是万无一失的证据;)但它确实有效 - 我们已经做了多年。

另请注意,视图层次结构可以在任何iOS版本之间更改。它不是这个公共api。所以计划额外的防守