2016-09-14 18 views
1

UITableViewCellはnibファイルで構成されています。このセルは柔軟な高さセクションヘッダーとして使用するために設計されて(しかし、あなただけのストーリーボードのUITableView内のプロトタイプを使用することができます。)Xcode 8 - 自動レイアウトとフレキシブルセクションヘッダー(と回答)

:そのcontentView以内

、セルは、単一UIStackViewが含まれています。 UIStackViewの中には、UILabelsの束、他のものがあります。内容は可変であり、動的に追加されます。

これを実現するために:

  1. は制約を追加:contentViewUIStackViewのエッジをピン。ここで定数に0以外の値を使用しないように注意してください。そうしないと、自動レイアウトが停止する可能性があります。

  2. tableView.estimatedSectionHeaderHeightを正の非ゼロ値に設定します。これにより、高さを柔軟にすることができます。

その後、通常:nibがtableViewに登録され、必要に応じてセルがデキューされ、そのプロパティが設定されます。

Xcode 7で生成され、iOS 9で実行されるコードが動作するようになりました。スタックビューの内容を追加/変更すると、セル(セクションヘッダ)の高さが変わります。

問題: Xcode 8 GM。 Xcode 8から生成され、iOS 9で実行される同じレイアウトは失敗します。あなたが運が良ければ、Xcodeはあまりにも魅力的な「拘束条件を同時に満たすことができない」ログメッセージをあなたに提供するかもしれません。

+0

をあなた自身の質問に答えることはできませんが、あなたは」で行う必要があります回答 "セクション。 – Paulw11

+0

ああ、残念です。私はそれを編集します。 – Womble

答えて

1

ソリューション:

Xcodeの8と自動レイアウトは現在実装されるUITableViewDelegate方法を必要としています。 (私のような場合)、それはあなたがこれを見落としそう、前のオプションまたは推論されてきたが、もはやしていることがあり、これ以上のことを見落とす:

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
{ 
    return UITableViewAutomaticDimension 
} 
関連する問題