TableCell 中的 UITextView,如何为通用应用程序设置正确的宽度
我在 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 上,当处于横向模式时,单元格的宽度不应该更大吗?
特奥
i am using a UITextView inside a tableView cell in order edit text.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 270, 24)];
[cell addSubview:textName];
[textName release];
}
This works, but when running it on the iPad it isn't correct.
I've tried to determine the width of cell using
cell.contentView.frame.size.width
but this always returns 320.0 for both iPhone and iPad
Also on the iPad when in landscape mode shouldn't the width of cell be bigger?
Teo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
理想情况下,您应该创建一个自定义
UITableViewCell
并在layoutSubviews
中调整控件大小/位置。如果您要在
tableView:cellForRowAtIndexPath:
中添加控件,那么您可以从 tableView 本身获取宽度:Ideally you'd create a custom
UITableViewCell
and adjust your control sizes/positions inlayoutSubviews
.If you're going to add the control in
tableView:cellForRowAtIndexPath:
, then you can get the width from the tableView itself:textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
。[cell.contentView addSubview:textName]
)。内容视图会自动缩小以处理编辑模式等。如果您只想调整布局,则子类化 UITableViewCell 有点过分了——我的印象是自动调整大小比使用layoutSubviews 手动调整大小更快。
textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
.[cell.contentView addSubview:textName]
). The content view automatically shrinks to handle editing mode, among other things.Subclassing UITableViewCell is a bit overkill if you just want to tweak layout — it's my impression that auto-resizing is faster than manual sizing using layoutSubviews.