2013-10-15 40 views
4

我在視圖控制器中處理旋轉問題。在旋轉時調整顯示視圖的大小

當視圖位於最上方並且電話被旋轉時,它會正確調整。

當模式爲的視圖控制器在上顯示時,它和設備被旋轉,當用戶返回時,視圖控制器未完全更新爲旋轉。我似乎遇到的最大問題是分隔線不能展開以填滿整個寬度。

實施例:

enter image description here

我已經uploaded my test project to GitHub;你可以從https://github.com/tewha/ResizeOnRotate.git克隆它。

我沒有任何代碼處理旋轉。我的理解是,這應該是完全自動的。我錯過了什麼讓這個工作正確?

編輯:

通過下面的答案,一個簡單的解決方法的啓發:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    UITableViewCellSeparatorStyle separatorStyle = self.tableView.separatorStyle; 
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
    self.tableView.separatorStyle = separatorStyle; 
} 

回答

4

我想這可能蘋果錯誤。您可以在自己的應用程序「郵件」中複製它。

步驟中的「郵件」應用,以重現 -

  1. 在「郵件」應用程序的消息打開收件箱。 (例如,在縱向)
  2. 點擊撰寫郵件圖標(右下角)並旋轉設備(橫向)。
  3. 關閉撰寫郵件並立即查看收件箱郵件視圖。

結果:隔板線路都斷線。

用戶的解決方法:在郵件收件箱中向下滾動(導致顯示刷新)。

可複製到iOS 7.0.2。

編輯

(代碼解決方法 - 1)

如果可能的話,你可以reloadData刷新tableview中出現時。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.tableView reloadData]; 
} 

代碼解決方法 - 2(重新加載僅可見細胞)

- (void)viewWillAppear:(BOOL)animated 
{ 
    NSArray *refreshCells = [self.tableView indexPathsForVisibleRows]; 

    [self.tableView reloadRowsAtIndexPaths:refreshCells withRowAnimation:UITableViewRowAnimationNone]; 
} 
+0

報告爲15235773. –

+0

我發現了一個破壞性較小的解決方法;如果您喜歡,請隨時將其添加到您的答案中(請參閱更新後的問題)。 :) –

相關問題