3

カスタム テーブル セルに2 つUILabelの があり、Interface Builder でそれぞれ「Lines」が「0」に設定されています。それらは、自動レイアウトによって決定された行の高さを持つテーブル内で、左端と右端が揃えられて垂直に積み重ねられます。しかし、そのうちの 1 つはとにかく切り詰めることを主張しています。なんで?必要な行を取り、表のセルの高さを押し出す必要があります。

ここに画像の説明を入力

4

4 に答える 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 に答える