【问题标题】:Autoresizing on iPad在 iPad 上自动调整大小
【发布时间】:2011-06-25 18:38:49
【问题描述】:

我的 iOS 应用程序中有一个 UITableView,根据设备(iPhone 或 iPad),我在 UITableView 的 contentViews 上调整不同项目的大小。

例如,每个单元格的 contentView 都有一个叫做 valueLabel 的东西。根据设备,我会正确调整大小:

if(IDIOM == IPAD)
    valueLabel = [[[UILabel alloc] initWithFrame: CGRectMake( 430.0, 0.0, 216, 44.0 )] autorelease];
else
    valueLabel = [[[UILabel alloc] initWithFrame: CGRectMake( 165.0, 0.0, 80, 44.0 )] autorelease];

然后,我配置标签(颜色、字体等),然后,我有以下代码行:

if(IDIOM != IPAD)
     valueLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleHeight;

事实证明,当我第一次写这篇文章时,我很聪明地这样做了。但我不记得为什么。我正在尝试在 iPhone 和 iPad 上进行支持横向模式的更新。但只有 iPhone 上的 UITableView 在横向模式下大小合适,因为对于 iPad,我没有自动调整大小。如何在 iPad 上自动调整大小?

如果我删除条件if(IDIOM != IPAD),标签甚至不会显示,并且我的单元格是空的。

【问题讨论】:

  • 删除条件IDIOM != IPAD?
  • 如果我删除条件 if(IDIOM != IPAD),标签甚至不会出现,而且我的单元格是空的。
  • 我假设您的意思是,标签不会显示在 iPhone 上(如果您删除条件语句)
  • 通常,将背景设置为粉红色或其他一些花哨的颜色会帮助您看到它们,并且您可以在改变方向时观察它们可能在哪里移动; gdb 在这里也很有用,在一个明显的地方休息,po [someView subViews] 可以看到子视图的所有框架以及它们可能在哪里(不可见),它可以给你一个问题的提示

标签: iphone ios ipad uitableview


【解决方案1】:

我认为 iPad 中的视图不能自动调整大小。但是您可以根据方向管理您的视图。检查我的答案here

【讨论】:

  • 也许当时确实如此,但我可以确认自动调整大小确实适用于 iOS 5.0 和 Xcode 4.4 上的 UIView
【解决方案2】:

iPad 表格视图所在的外部容器是否在 iPad 调整大小时?

【讨论】:

  • 什么意思?我的 UITableView 在我的 UITableViewController 上。但即使不旋转设备,如果我不包含该 if 语句,我也看不到标签。为什么 iPad 上的自动调整大小会搞砸?
  • 可能是自动调整大小的掩码允许您必须将标签完全移出单元格的边界,430 处的 X 原点对我来说似乎很奇怪。
  • 嗯,我明白你的意思了……抱歉,我帮不上忙。
猜你喜欢
  • 1970-01-01
  • 2011-07-18
  • 2011-04-10
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多