2017-07-04 1 views
0

私はUITableViewプロトタイプセル用のストーリーボードを使用しており、accessoryTypeDisclosure Indicatorに設定しています。矢印1 ">"。私は、矢印の画像がいつ追加されたのか、どこで正しく取得できるのかを知りたいですか?UITableViewCellのaccessoryTypeをインジェクトしたとき?

こちらはUIImageViewです。私はtableviewをスクロールすると、プリント[]以下

enter image description here

test()機能は、唯一それが正しい印刷します。

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

私も試してみました: cellForRowAtwillDisplayを、両方のは、それが動作しますtableViewをスクロールすることによってUIImageView場合のみを取得することはできません。

マイカスタマイズ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 
    } 
} 

答えて

0

カスタムセルクラスのlayoutSubviewsをオーバーライドし、それが呼び出されたときに、最初にスーパークラスに委譲し、あなたがそれを見つけるまでは、その後何度もビュー階層を確認してください。

最高です。あなたのものではない私的なビューの階層を扱うときには愚かな証拠ではありません;しかし、それは機能します - 私たちは何年もそれをしました。

ビュー階層もiOSリリース間で変更される可能性があります。これはパブリックAPIではありません。ので、プログラムは特別な防衛

+1

こんにちは@ Daij-Djan、まだ画像を取得することはできません。あなたは、私はちょうどこれのために余分な希望の色のついた矢印イメージを追加したくないことを知っています。とにかくありがとうございました。 –

関連する問題