カスタム テーブル セルに2 つUILabel
の があり、Interface Builder でそれぞれ「Lines」が「0」に設定されています。それらは、自動レイアウトによって決定された行の高さを持つテーブル内で、左端と右端が揃えられて垂直に積み重ねられます。しかし、そのうちの 1 つはとにかく切り詰めることを主張しています。なんで?必要な行を取り、表のセルの高さを押し出す必要があります。
質問する
7037 次
4 に答える
2
呼び出し[cell.textLabel sizeToFit]
てみてください。内容に応じてラベルビューのサイズが変更されます。
于 2015-03-30T20:05:49.190 に答える
0
cell および viewDidLayoutSubviews の layoutSubviews が機能しません。セルにカスタム コンテナー ビューを使用し、コンテナーの layoutSubviews で preferredMaxLayoutWidth を設定する必要があります。UIView の特別なサブクラスがあります
class ExtendedView:UIView{
var didLayoutSubviews:(()->Void)!;
override func layoutSubviews() {
super.layoutSubviews();
if let completion = didLayoutSubviews {
completion();
layoutIfNeeded();
}
}
}
使用例
container.didLayoutSubviews = {[unowned self] in
let left = self.statusLabel.frame.minX - 4;
width = left - self.title.frame.minX;
self.title.preferredMaxLayoutWidth = round(width)
container.layoutIfNeeded()
}
于 2016-09-02T11:44:48.100 に答える