问题
I am experimenting with putting a UITextField
inside a UITableViewCell
.
Now I got two working methods.
Using addSubview
method:
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"textFieldCell"];
UITextField *textFieldView = [[UITextField alloc] initWithFrame:CGRectMake(150, 7, 150, 30)];
[textFieldView setPlaceholder:@"Placeholder"];
[cell addSubview:textFieldView];
Using setAccessoryView
method:
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"textFieldCell"];
UITextField *textFieldView = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 150, 30)];
[textFieldView setPlaceholder:@"Placeholder"];
[cell setAccessoryView:textFieldView];
In my opinion the setAccessoryView
result is better looking, since the alignment is done automatically.
But my question is: It it ok to put a UITextField
inside a AccessoryView
? Or is there a good reason why I shouldn't do it that way?
回答1:
There is no any restriction on it by apple, but main intention to add accessoryView
property in UITableViewCell
class, to be used, typically as a control, on the right side of the cell (normal state).
Following sentence taken from the apple document:
If the value of this property is not nil, the UITableViewCell class uses the given view for the accessory view in the table view’s normal (default) enter code here
state; it ignores the value of the accessoryType
property. The provided accessory view can be a framework-provided control or label or a custom view. The accessory view appears in the right side of the cell.
According to this statement you can provideUITextField
(framework-provided control) as accessoryView
.
回答2:
I don't think it's restricted. But the accessoryView has a role in the design: to show that the cell has interactive options.
If you want to do it the correct way, you should append UIViews in cell.contentView.
来源:https://stackoverflow.com/questions/13683773/put-a-uitextfield-inside-a-uitableviewcells-accessoryview