2016-08-31 9 views
2

自動レイアウトを使用してUITableViewCell内のUILabelを処理する方法は?私は青いラベルが中央ではなく、それが長いかどう同じセルに隣接ラベルを横断せずになりたい自動レイアウトを使用してUITableViewCell内のUILabelを処理する方法は?

enter image description here

:そのラベルの長さに応じて...これが私の見解です。

これらの間に制約を追加しましたが、中心にはありません。

このタイプのセルにはどんな制約がありますか?

答えて

2

ラベル名はtitle_labeldetail_label、つまり3番目のセル 'service'のタイトルはタイトルで、もう1つのラベルは詳細です。

I. title_labelの先頭スペースをスーパービューに設定し、必要に応じて定数を設定します。そのアウトレットをconstraint_title_leadingとしましょう。

II。 title_labelの場合は、コンテナの中心を垂直に設定します。

III。 title_labelの末尾にdetail_labelの先頭スペースを設定します。定数を8点とする。コンセントを作成して名前をconstraint_detail_leading

IVにする。 detail_labelを垂直中心に設定します。title_labelまたはsuperview。

VI。 detail_labelのコンテンツの配置を中央に設定します。

VII。スーパービューに詳細ラベルの末尾のスペースを設定すると、コード内の定数を変更することはありません。その名前をconstraint_detail_trailing

VIIIとする。セルのデータソースを設定したら、このメソッドを呼び出します。それはトップに代わりdetail_labelピンの中心制約の列の複数行、すなわち動的高さを有効にし、上部定数が底定数に等しくなるように底WRTのスーパーする

func adjustConstraints() -> Void { 


    let titleWidth = (self.title_label.text! as NSString).boundingRectWithSize(CGSizeMake(600, 600), options: .UsesLineFragmentOrigin, 
    attributes: [NSFontAttributeName : self.title_label.font], context: nil).width 

    self.constraint_detail_trailing.constant = self.constraint_title_leading.constant + titleWidth + self.constraint_detail_leading.constant 
    self.layoutIfNeeded() 
} 

および0.1であるために、そのnumberOfLinesを設定self.tableView.rowHeight = UITableViewAutomaticDimension

を設定します
0

は、あなたの「サービス」ラベル

0

に関連した青色のラベルに選択肢(10pxの)制約の主要な余白を追加ラベルにhorizantolセンターの制約を削除し、それに通じる/末尾の制約を追加します。次に、テキストの位置揃えをUILabelの中心として設定します。

UILabelにも上限と下限の制約があることに注意してください。そして、 "サービス" UILabelのための唯一の上限制約。

+0

回答ありがとうございますが、まだ問題がある – Zizoo

+0

結果はありましたか?コードを追加する必要があります。 – hasan83

関連する問題