質問

次のコードを使用して、 UITableView の行の高さを設定しています

[tableView setRowHeight: 100.00];

UITableView でセパレータとして単一行を使用しています。

上記の高さを設定しても、行の高さは変わりません。

役に立ちましたか?

解決

実装する必要があります

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

デリゲートメソッド。そこに100.0を返します。

他のヒント

すべての行の高さが同じで rowHeight プロパティを使用する場合は、 heightForRowAtIndexPath を避ける必要があります。ドキュメントによると:

  

rowHeightの代わりにtableView:heightForRowAtIndexPath:を使用すると、パフォーマンスに影響があります。テーブルビューが表示されるたびに、各行のデリゲートでtableView:heightForRowAtIndexPath:を呼び出します。これにより、多数の行(約1000以上)を持つテーブルビューで重大なパフォーマンスの問題が発生する可能性があります。

UITableViewControllerサブクラスでは、たとえば viewDidAppear メソッドで実行できます( UITableViewController にはtableViewへの参照があります):

self.tableView.rowHeight = 79.f;

行の高さは、セルが最初に表示されるときにセルに焼き付けられます。

データソースを設定する前にUITableView#rowHeightを設定しましたか?
そうでない場合は、そうします。
何らかの理由でできない場合、他のオプションは、行の高さを設定した後にUITableView#reloadDataを呼び出すことです。

このようにしました。ここでは tableobj はアプリケーションの UITableView オブジェクトにすぎません。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [tableObj setRowHeight:100.0f];
}

または numberOfRowsInSection:で処理します:

- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section {
    [tableObj setRowHeight:100.0f];
    return [soandso count]; // soandso is my object
}

データソースを設定する前に rowHeight を設定するため。それは私のために働いた(同じ行の高さのために)。

より優れた、よりクリーンなソリューションは、デリゲート関数を実装することです(UITableViewに多くの行がある場合、最良の方法ではないかもしれません...)。

また、UITableVieCellはUIViewであるため、最初に高さを変更できると考えてください...

iPhone開発では、デリゲートは非常に強力です。ここではUITableViewDelageです:

http://developer.apple .com / iphone / library / documentation / uikit / reference / UITableViewDelegate_Protocol / Reference / Reference.html

また、indentForRow、displayCellForRow、heightForRow、編集内容を変更することもできます.....

UITableViewにそのようなメソッドがあるとは思わない...

代わりに、プロパティrowHeight ...
を使用できます 試して、 tableView.rowHeight = 100;

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top