TableCell 中的 UITextView,如何为通用应用程序设置正确的宽度

发布于 2024-10-21 18:22:49 字数 491 浏览 2 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

分开我的手 2024-10-28 18:22:49

理想情况下,您应该创建一个自定义 UITableViewCell 并在 layoutSubviews 中调整控件大小/位置。

如果您要在 tableView:cellForRowAtIndexPath: 中添加控件,那么您可以从 tableView 本身获取宽度:

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];

Ideally you'd create a custom UITableViewCell and adjust your control sizes/positions in layoutSubviews.

If you're going to add the control in tableView:cellForRowAtIndexPath:, then you can get the width from the tableView itself:

UITextField *textName = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width-50, 24)];
烈酒灼喉 2024-10-28 18:22:49
  1. 在函数返回后,iPad 单元格添加到表格时会调整其大小。如果您希望文本字段随单元格调整大小,您可以执行类似 textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
  2. 您应该向 contentView 添加自定义视图(即 [cell.contentView addSubview:textName])。内容视图会自动缩小以处理编辑模式等。

如果您只想调整布局,则子类化 UITableViewCell 有点过分了——我的印象是自动调整大小比使用layoutSubviews 手动调整大小更快。

  1. The iPad cell is resized when it's added to the table, after your function returns. If you want the text field to resize with the cell, you can do something like textName.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight.
  2. You should add custom views to contentView (i.e. [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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文