6

テキストを編集するために、tableViewセル内でUITextViewを使用しています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)];

[cell addSubview:textName];
[textName release];

}

これは機能しますが、iPad で実行すると正しくありません。

cell.contentView.frame.size.width を使用してセルの幅を決定しようとしました

ただし、これは iPhone と iPad の両方で常に 320.0 を返します

また、ランドスケープモードのiPadでは、セルの幅を大きくするべきではありませんか?

テオ

4

2 に答える 2

2

理想的には、カスタムを作成し、UITableViewCellでコントロールのサイズ/位置を調整しますlayoutSubviews

にコントロールを追加する場合はtableView:cellForRowAtIndexPath:、tableView自体から幅を取得できます。

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];
于 2011-03-10T19:00:52.427 に答える
1
  1. iPadセルは、関数が戻った後、テーブルに追加されるとサイズが変更されます。テキストフィールドのサイズをセルに合わせて変更する場合は、のような操作を実行できますtextName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
  2. カスタムビューをcontentViewに追加する必要があります(つまり[cell.contentView addSubview:textName])。コンテンツビューは、特に編集モードを処理するために自動的に縮小します。

UITableViewCellのサブクラス化は、レイアウトを微調整したいだけの場合は少しやり過ぎです。自動サイズ変更は、layoutSubviewsを使用した手動サイズ変更よりも高速であると思います。

于 2011-03-10T19:54:58.810 に答える