[英]IOS7: Pop ViewController forces the UIImageView to drop
將項目升級到iOS7之后
當我做一個BACK按鈕並且UINavigationController回到上一頁時,屏幕頂部的ImageView向下移動。
我使用IB進行布局。 這些是我的模擬指標:
我關閉了自動布局。 關於這個問題可能有什么想法? 我不確定是否有人想查看特定的代碼,並且我不想用太多的代碼弄亂問題。
更新:基於評論問題,我想進行以下更新:
viewDidLoad
和viewDidAppear
我都調用了一個名為recalculateAll
的用戶定義方法,但它們根本沒有引用任何imageview尺寸。 只是為了進行嘗試,我注釋掉了整個部分並運行了代碼,但它仍然跳下來。 init
我確實以編程方式設置了一些圖像視圖(您在氣泡中似乎看到了#132),並使用了它們的x和y。 這是我用於從視圖控制器移動到tableviewcontroller的典型導航:
GetTimeOffByType *showTimeOffReport = [[GetTimeOffByType alloc] initWithNibName:@"GetTimeOffByType" bundle:nil];
showTimeOffReport.timeOffType = @"Vacation";
[self.navigationController pushViewController:showTimeOffReport animated:YES];
這些都是.xib
文件,根本沒有情節.xib
。 它基本上是一個視圖控制器,具有一個帶有6個按鈕的嵌入式UINavigationController
。 每次按下按鈕都會推動UITableViewController
傳遞不同的參數並顯示不同的數據。 我用來返回到原始UIViewController
的過渡只是iOS生成的BACK
按鈕(因此沒有顯示代碼)
Update#2希望這可以幫助某人解決這種奇怪的行為。 因此,如果我單擊showTimeOffReport
上的表視圖單元以獲取單元格詳細信息,然后使用BACK一直導航到它,則它不會跳下來。
Update#3好吧,這是我剛剛發現的:是否跳下來的問題與UINavigationBar的半透明性有關。 如果您有Translucent = YES,它將從窗口頂部開始。 如果您有一個半透明= NO,它將從UINavigationBar的底部開始。
您可以嘗試將UIViewController edgesForExtendedLayout
的new屬性設置為UIRectEdgeNone
。
這是一個很好的資源,它解釋了有關iOS 7中視圖布局如何變化的更多信息。
如果您打算向后兼容,那么如果設備未運行iOS 7,則可能需要進行一些運行時檢查並調整位置。
這可能對您有幫助。您可以嘗試添加UIViewControllerBasedStatusBarAppearance
鍵,並在info.plist中將其值設置為NO
。
UIViewControllerBasedStatusBarAppearance = NO
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.