Put a UITextField inside a UITableViewCell's AccessoryView

ⅰ亾dé卋堺 提交于 2019-12-13 02:07:51

问题


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 herestate; 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!