web-dev-qa-db-ja.com

uitableviewで固定高さのセルを作成するにはどうすればよいですか?

だから私はインスタグラムのようなタイムラインコンテンツを作りたいと思っています。私はuitableviewでカスタムセルを使用しています。私の問題は、ストーリーボードでセルの高さを345に設定しているのですが、次のようなセルテーブルが表示されます。

celltablescreenshot

ストーリーボード上のカスタムセルは次のとおりです。

storyboardss

ストーリーボードのような結果を得るにはどうすれば修正できますか?

12
Ega Setya Putra

この問題が発生している理由は、カスタムテーブルビューセルの行の高さを345に設定している可能性がありますが、UITableviewの行の高さが345未満である間はカスタムとして設定されていないためです。したがって、ストーリーボードに移動してテーブル(UITableview)を選択し、その行の高さを可能な最大の行の高さに設定します。

enter image description here

2種類の行の高さがあると仮定しましょう。 1つは345で、もう1つは325です。325<345として、テーブルビューの行の高さを345に設定します。

enter image description here

ここで、カスタムテーブルビューセルを選択し、その行の高さをカスタムにして、345または325に設定します。この場合は345になります。

enter image description here

今はいいはずです。

ただし、セルサイズが異なる場合のより適切な方法は、行の高さの指定にデリゲートメソッドを使用することです。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
   if(indexPath.row==0){
      return 345;
   }
   else if(indexPath.row==1){
      return 325;
   }
   else{
      return 300; //a default size if the cell index path is anything other than the 1st or second row.
   }
}
29
Natasha

このdelegateメソッドを使用します。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 345
}
4
Azat

ここでテーブルビューセルの高さを設定できます。

enter image description here

1
Mohammad Nurdin