2017-01-05 9 views
0

多くのcustomCellがあります。各セルには、テキストボックスやtextAreaのようなボタンがあります。ビューの読み込み時の高さは非常に低くなります。すぐにカスタムセルの高さを設定することができません

override func viewDidLoad() { 

    super.viewDidLoad(); 

    self.view.backgroundColor = UIColor.groupTableViewBackground 
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.none 
    self.tableView.estimatedRowHeight = 100 
    tableView.rowHeight = UITableViewAutomaticDimension 
    self.tableView.setNeedsLayout() 
    self.tableView.layoutIfNeeded() 

} 

と私は全くのプロトタイプ細胞と細胞enter image description here

ウィル自動レイアウト作業に定義された次の制約がありますか? これを実装する方法がない場合は、 HeightforrowAtIndexPathメソッドのレイアウトは、スクロールした後にしか見えませんでした。ビューの初期ロードは適切なレイアウトにはなりません。

以下はこのコードです。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    if (eleData.elementType=="apple") 
    { 
     return 90; 
    } 
else if (eleData.elementType=="banana") 
    { 
     return 50; 
    }  
else 
{ 
    return 30; 
} 

} 

提案があります。 ありがとうございます。

答えて

1

クイックGoogle検索は、あなたの答えを与える...

UITableView dynamic cell heights only correct after some scrolling

あなたは、必要に応じてcellForRowAtIndexPathメソッドであなたのセルを返す前にレイアウトを追加する必要があります。

cell.layoutIfNeeded() 
+0

はありがとうございました。今はうまくいきます。 – Dev

+0

あなたは大歓迎です! –

+0

まだ時々同じ問題が起こっています...どうすればこれを防ぐことができますか? – Dev

関連する問題