2016-04-12 9 views
1

ストーリーボードを使用してプロトタイプセルの高さの制約を追加するにはどうすればよいですか?ストーリーボードのプロトタイプセルの高さを制約として設定できません

最初のスクリーンショットでは、ストーリーボードの「選択した制約にリセット」を使用してキャンバスに基づいて自動的に設定しました。私はビューコントローラレベルとビューレベルの両方でそれを試しました。しかし、結果はすべてのケースで同じでした。スクリーンショットに見られるように、コードが実行されるときには、赤いセルと同じ高さの青色セルが表示されるように、いくつかの制約が加えられました。

enter image description here

私は今、セルの高さのために追加の明示的な制約を追加しようとした場合、それは私をさせません - オプションがグレー表示されます。

すべての制約を削除して手動で追加すると、それらの制約を追加するオプションはまだ無効になっています。なぜですか?以下のスクリーンショットの例を参照してください。 代わりに、コンテンツビューを選択して制約を設定すると、キャプチャされた能力、つまり能力が無効になっている場合、スクリーンショットのようにheaderCallを選択するのではなく、

私はちょうど1つのタイプが狭いセクションヘッダーを表し、別のタイプが広いデータコンテンツセルを表すプロトタイプセルを追加しようとしていますが、なぜコードがそれを明らかにしていないのですか。 (私は他のビューコントローラ/ビューのいずれかの制約を設定する同様の問題はなく、これらのプロトタイプセルのみ)。

ビューコントローラに高さや制約などを設定するコードはありません。そのコードは実質的に空ですが、問題を再現するために作成しました。彼らは既に、動的ラッパーを作用し、それらのサブビューに応じて、その高さを調整するように実際には制約がのUITableViewCellのコンテンツビューに直接適用されるべきではない

enter image description here

答えて

1

コンテンツビューにサブビューを追加し、そのサブビューに高さの制約を設定してください。同時に、新しいサブビューのすべての側面をコンテンツビューに固定します。

あなたがセルから静的な高さを期待する場合、コードの下にオーバーライドして、あなたのViewControllerがUITableViewDelegate実装してください:

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat 

をそれとも、あなたのセルの高さは、高さの制約から計算されるようにしたい場合は、あなただけのサブビューに適用コンテンツビューの場合は、次のようにしてください:

self.tableView.rowHeight = UITableViewAutomaticDimension; 
0

私はUITableViewCellの制約を設定できないと思います。プログラムで制約を設定する唯一の方法。書くことができます

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //... 
} 

ここでは、異なる行に2つの高さを与えることができます。

0

セルに制約を設定することはできません。 contentViewに制約を設定することができます。サイズインスペクタからセルの高さを設定します。セルのダイナミックサイズが必要な場合は、

self.tableView.estimatedRowHeight = 44.0; 
self.tableView.rowHeight = UITableViewAutomaticDimension; 

となりますが、そのためにはautolayoutを使用する必要があります。これがあなたを助けることを願っています。 :)

関連する問題