2010-02-17 77 views
1

我試圖在我的應用程序中實現方向更改功能。我已覆蓋 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation。Iphone方向更改

在這種方法中,我改變了視圖中存在的tableview的框架大小(包括單元格的位置)。 所述的tableview詳細說明:

  1. 添加到視圖爲[self.view addSubView:的tableView]在視圖控制器的viewDidLoad方法;
  2. 單元格項(行)具有文本字段和分段控件。
  3. 表格視圖中有10個單元格,橫向模式下只有2個單元格可見,並且在potrait模式下5個單元格可見。

我已經實現了滾動條。

問題: 將方向改爲potrait模式的某些時間未呈現單元格中的某些分段控件(根本未顯示)。

發生這種情況時,我正在查看橫向模式中的最後幾個單元格,我將方向更改爲potrait模式。

回答

0

我認爲你的畫面調整存在問題。當我從肖像轉向風景時,我遇到了類似的問題。嘗試查看旋轉過程背後的邏輯(設置框架,位置等)是否正確。對於我來說這篇文章真的很有用link text

對於tableView,你可以嘗試設置autoresizingMask爲UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight來查看旋轉表時是否正確調整。

tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

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; 
}