web-dev-qa-db-ja.com

iPhone + UITableView +行の高さ

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

[tableView setRowHeight: 100.00];

UITableViewの1行をセパレーターとして使用しています。

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

22
pratik

実装する必要があります

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

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

65
Morion

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

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

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

self.tableView.rowHeight = 79.f;
23
jokkedk

行の高さは、最初に表示されるときにセルにベイク処理されます。

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

7
emp

私はこれを好きでした、ここで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を設定するためです。それは私のために働いた(行の高さが等しい場合)。

3
Mallikarjun

デリゲート関数を実装することをお勧めします(UITableViewに多数の行がある場合は、おそらく最善の方法ではありません...)。

また、UITableVieCellはUIViewであるため、最初に高さを変更できます...

デリゲートは、iPhone開発では非常に強力です。ここでは、UITableViewDelageを使用しています。

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

IndentForRow、displayCellForRow、heightForRow、編集などを変更することもできます。

0
eBuildy