私はUITableViewCellのサブクラスとUITableViewControllerのサブクラスを持っています。私は自分のカスタムセルでテーブルビューをポップアップしています。Swift UITableViewCell Subviewレイアウト更新遅延
私はストーリーボードにUITableViewCellを作成し、そのクラスを私のカスタムUITableViewCell Swiftファイルにして、それに識別子を与えました。
一定のトップスペースの制約のために:私は次の制約とUIImageViewを持っている(ストーリーボード上の)私のカスタムセルで
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("myIdentifier", forIndexPath: indexPath indexPath)
return cell
}
:それから私は、コントローラ内の細胞を作成します私はImageViewのトップがセルトップと同じになることを意味していると思っていました。
しかし、私のセル内の画像は、ビットを押し下げている:
白は完全に働いているだけで、テーブルのセクションヘッダ、です。しかし、イメージの上に表示されるオレンジ色のギャップ(そのオレンジはセルの背景色です)を見ることができます。
私はカスタムセルのawakeFromNibの画像フレームに設定しようとした:
@IBOutlet weak var img: UIImageView!
override func awakeFromNib() {
img.frame = CGRectMake(0, 0, img.frame.width, img.frame.height)
}
をしかし、これは効果がなかったので、私はlayoutSubviewsに枠を設定しようとした:
override func layoutSubviews() {
img.frame = CGRectMake(0, 0, img.frame.width, img.frame.height)
}
は、これは働いていたが、唯一のテーブルビューをスクロールダウンしてバックアップした後。最初の2つのセルにオレンジ色のギャップがありますが、3番目のセルにスクロールしてバックアップすると、ギャップはなくなります。
これはなぜ起こっているのですか?スクロールダウンしてバックアップした後でなく、すぐに(0、0)にイメージビューを配置するにはどうすればよいですか?
うわー、奇妙な。これはうまくいった。以前は 'img.frame.minY'が8に等しいことに気付きましたが、制約を-8に設定しようとは思わなかった。ありがとう。 – user3674647