【发布时间】: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