【发布时间】:2014-03-02 17:03:03
【问题描述】:
我想检查用户设备是 iPhone 4 还是 5,然后设置 tableView 的高度。 xCode 模拟器识别出它是 iPhone 4,显示消息“iPhone 4”,但 tableView 的高度保持不变。我做错了什么?
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
CGSize result = [[UIScreen mainScreen] bounds].size;
if(result.height == 480)
{
// iPhone 4
NSLog(@"iPhone 4");
myTableView.frame = CGRectMake(0, 44, 320, 200);
}
if(result.height == 568)
{
// iPhone 5
self.myTableView.frame = CGRectMake(0, 44, 320, 288);
}
}
【问题讨论】:
-
你为什么要这样做?使用自动布局
-
您引用了
myTableView和self.myTableView。你确定这些引用指向同一个对象吗? -
当键盘覆盖tableView时我可以使用自动布局吗,因为这就是我想要这样做的原因?
-
@bneely 是的,很抱歉,我忘了再次更改此设置,因为我在没有 self 的情况下尝试过。
-
@user3298017如果您想根据键盘是否可见来更改布局,您可以响应通知来执行此操作。这是另一个解决此问题的 StackOverflow 问题:stackoverflow.com/questions/1490573/…
标签: iphone objective-c uitableview frame cgrectmake