Iphone方向改变

时间:2010-02-17 11:31:19

标签: iphone

我正在尝试在我的应用程序中实现方向更改功能。我已经覆盖 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation。

在此方法中,我更改视图中存在的tableview的帧大小(包括单元项的位置)。 tableview详细信息:

  1. 在视图控制器的viewDidLoad方法中将[self.view addSubView:tableView]添加到视图中;
  2. 单元格项(行)具有文本字段和分段控件。
  3. 表格视图中有10个单元格,横向模式下只有2个单元格可见,而在potrait模式下,5个单元格可见。
  4. 我已经实现了滚动条。

    问题: 某些时候,在将方向更改为potrait模式时,单元格中的某些分段控件不会呈现(根本不显示)。

    当我在横向模式中查看最后几个单元格并且我将方向更改为potrait模式时会发生这种情况。

2 个答案:

答案 0 :(得分:0)

我认为您的相框调整存在问题。当我从纵向旋转到风景时,我遇到了类似的问题。尝试查看旋转过程背后的逻辑(设置框架,位置等)是否正确。对我来说,这篇文章非常有用link text

对于tableView,您可以尝试将autoresizingMask设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight以查看旋转表是否正确调整。

tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

答案 1 :(得分:0)

我的沙盒应用 解决方案很简单:

https://github.com/comonitos/programatical_device_orientation

接口(h文件)中的

  

BOOL旋转;

实现中的

(m文件):

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return rotated;
}
- (void) setup 
{
   rotated = YES;
   [[UIDevice currentDevice] setOrientation:UIDeviceOrientationLandscapeLeft];
   rotated = NO;
}