1

UITextFielda の中に aを入れて実験していUITableViewCellます。

これで、2 つの作業方法が得られました。

使用addSubview方法:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"textFieldCell"];

UITextField *textFieldView = [[UITextField alloc] initWithFrame:CGRectMake(150, 7, 150, 30)];
[textFieldView setPlaceholder:@"Placeholder"];

[cell addSubview:textFieldView];

使用setAccessoryView方法:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"textFieldCell"];

UITextField *textFieldView = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 150, 30)];
[textFieldView setPlaceholder:@"Placeholder"];

[cell setAccessoryView:textFieldView];

私の意見ではsetAccessoryView、位置合わせが自動的に行われるため、結果の見栄えが良くなります。

しかし、私の質問は次のとおりUITextFieldですAccessoryView。それとも、そのようにしてはいけない正当な理由がありますか?

4

2 に答える 2

1

制限はしていないと思います。しかし、accessoryView には設計上の役割があります。つまり、セルにインタラクティブなオプションがあることを示すことです。
正しい方法で行いたい場合は、cell.contentView に UIView を追加する必要があります。

于 2012-12-03T13:37:07.083 に答える
0

Apple による制限はありませんが、クラスにaccessoryViewプロパティを追加UITableViewCellして、通常はセルの右側 (通常の状態) でコントロールとして使用することを主な目的としています。

次の文は、アップルのドキュメントから抜粋したものです。

このプロパティの値が nil でない場合、UITableViewCell クラスは、テーブル ビューの通常の (デフォルト)enter code here状態でアクセサリ ビューに指定されたビューを使用します。プロパティの値は無視されaccessoryTypeます。提供されるアクセサリ ビューは、フレームワークが提供するコントロールまたはラベル、またはカスタム ビューにすることができます。アクセサリ ビューがセルの右側に表示されます。

このステートメントによると、UITextField(フレームワーク提供のコントロール)を として提供できますaccessoryView

于 2012-12-03T13:19:18.087 に答える