2010-10-22 127 views
3

在iPad的照片應用程序,當你點擊一個專輯圖片的堆棧擴展以填充屏幕 - 你在同樣的觀點是,它只是重新安排電網一點。但是在頂部,出現了一個左箭頭式的「後退」按鈕,就好像pushViewController已被使用一樣 - 除了它會整齊地褪色而不是滑入。當您點擊它時,它會再次淡出,而不是滑出。顯示UINavigationBar的後退按鈕不推視圖控制器

有沒有辦法來複制這種行爲?到目前爲止,我已經嘗試了幾個選項,可能只是缺少一些東西。我試過什麼:

  • 設置self.navigationItem的leftBarButtonItem工作,但給了我一個方形按鈕,而不是有角度的後退式的一個 - 有一些黑客在網上來完成這項工作,如使用圖片爲按鈕,但我寧願只使用它們,如果肯定沒有「官方」的方式來做到這一點。

  • 設置self.navigationItem.backBarButtonItem - 這通常用於在推送視圖控制器時自定義後退按鈕,因此它不起作用。

  • [self.navigationController.navigationBar setItems ::] - 這個工程,但它給我的滑動動畫,而不是衰落。因此,我使用動畫:NO來使它剛剛出現。下行:當點擊返回時,你得到滑出動畫,這看起來很奇怪,因爲其餘的用戶界面保持不變。

有沒有人設法複製這種效果?

在此先感謝!

回答

0

你的第一種方法可能是最好的。

它不必是超級哈克,你可以使用普通的UIButton和定製它看起來像使用backgroundImageForState:titleForState:(等)後退按鈕,然後設置UIButton對象的customViewUIBarButtonItem

許多應用這些天自定義按鈕的外觀&感覺,無論如何,所以使用自定義背景圖片是很正常的。如果你使用resizableImageWithCapInsets:(或stretchableImageWithLeftCapWidth:topCapHeight:如果您需要早於5.0支持的iOS),然後單擊按鈕仍然可以延伸到適合任何文字走了進去,而且因爲它是一個正常的UIButton文字本地化,等我不認爲這種方法要做到這一點,這是一個非常合理的方式來解決UIBarButtonItem對象的有限功能。

0

優於從不遲到。

要顯示返回按鈕沒有按下一個視圖控制器,上UINavigationBar使用pushNavigationItem:animated:popNavigationItemAnimated:。這些導致標準的幻燈片動畫和後退按鈕的創建。但是,除了在持續時間進行有根據的猜測之外,無法確保您的內容動畫與條形動畫同時運行。

由於iOS 7有一個更好的API來實現這種效果,在這種情況下,您仍然推送並彈出視圖控制器,但是您通過UINavigationControllerDelegate提供了通過navigationController:animationControllerForOperation:fromViewController:toViewController:的自定義過渡動畫。這可以使條和內容之間的動畫完美協調。

最後,如果您的內容前後由UICollectionViewController管理,則可以使用useLayoutToLayoutNavigationTransitions,該設計用於像Photos這樣的用例。

相關問題