2016-09-05 5 views
1

私のカスタムセルの高さを動的に設定しようとしています。私は以下のコードを使用し、それは動作します。動的UITableViewCell例外のある高さ

tableView.rowHeight = UITableViewAutomaticDimension 
tableView.estimatedRowHeight = view.frame.height/4 

しかし、私は、動的高さを有するように固定された高さを持つヘッダとセルの残りの部分としてインデックス0(最初のセル)で私のテーブルビューを必要とします。

私はこの試みた:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    if indexPath.row == 0 { 
     return (self.view.frame.height/2) 
    } 
    return tableView.estimatedRowHeight 
} 

をしかし、それはちょうど私がのviewDidLoad(中にestimatedRowHeightを設定何に高さを設定します)インデックス0の最初の行が持つように

は、どのように私はそれを作ることができます画面の1/2の高さ

view.frame.height/2 

その他のセルは高さが動的に変化します。ご協力ありがとうございました!

答えて

1

私はあなたがそのindexPaths 0よりも大きいセルに対してheightForRowAtIndexPath方法からtableView.rowHeight代わりのtableView.estimatedRowHeightを返すために必要があると思う:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    if indexPath.row == 0 { 
    return (self.view.frame.height/2) 
    } 
    return tableView.rowHeight // or return UITableViewAutomaticDimension 
} 
+0

すごくありがとう –

0

ozgurは私に、私はそれを把握するために必要なヒントを与えました。代わりのviewDidLoad()でtableView.rowの高さを設定する

は、私がcellForRowAtIndexPath

if indexPath.row == 0 { 
    tableView.rowHeight = view.frame.height/2 

    ... 

    return cell 
} else { 

    tableView.rowHeight = UITableViewAutomaticDimension 
    tableView.estimatedRowHeight = view.frame.height/4 

    ... 

    return cell 
} 

EDITにそれを移動:気にしません。最初のセルがインデックス0にあり、そのセルを作成しようとすると実際には機能しません。tableViewはすべての行の高さをview.frame.height/2に設定します。

+0

もしそれがうまくいかない場合は、単に答えを削除することができます... –

関連する問題