有很多關於自定義視圖作爲UIButton定製UIBarButtonItem
的討論。這很清楚。到目前爲止,我還沒有找到什麼,我感到驚訝的是,沒有提到用於處理界面旋轉的自定義UIBarButtonItems - 它是旋轉iPhone時的常見行爲,條形按鈕被垂直擠壓。但是,如果您以普通方式(通過調用initWithCustomView:
方法)自定義UIBarButtonItem,它將在旋轉到橫向方向後保持非擠壓狀態。有沒有解決方法?UIBarButtonItem和界面旋轉的自定義
回答
那麼,我發現解決方案處理UIApplicationDidChangeStatusBarOrientationNotification
在自定義UIBarButtonItem
類相當不錯。
我認爲你應該用新的方向圖像和文本重建UIBarButtonItem(你的自定義UIButton),或者重置自定義視圖的框架。
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
UIButton *rightItemButton = (UIButton *)self.navigationItem.rightBarButtonItem.customView;
//resize the frame
if (isLandscape) {
} else if (isPortrait) {
....
}
}
如果你可以添加來自IB的UIBarButtonItem的(你不必以編程方式創建它),你可以設置的彈簧和支柱,讓您的默認行爲。這個解決方案爲我工作。
hm。只有寬度和圖像插入可以定製。但無論如何,如果我需要在具有自定義視圖的'UIBarButtonItem'中需要,那麼我該如何解決? (它是我的情況) – peetonn 2013-04-25 10:59:13
問題是如果你想在IB導航欄中使用自定義的UIBarButton,你可以在導航欄上拖動一個UIBarButtonItem,然後在UIBarButtonItem中拖動一個UIButton,然後你可以自定義你喜歡的UIButton (背景,標題等)。對於你的情況,我認爲你可以創建一個自定義的UIView,其中有一個按鈕(或其他視圖),並設置spring和struts來獲得你的行爲。注:我沒有測試這種情況,但我沒有看到任何理由爲什麼這不起作用。 – danypata 2013-04-25 11:06:47
hm,看起來像可以工作,如果你有一個'UINavigationController'在你的xib。然而,它不是我的情況。但無論如何感謝提示! – peetonn 2013-04-25 11:17:12
- 1. ios自定義用戶界面旋轉
- 2. 的UIBarButtonItem旋轉
- 3. UICollectionView界面旋轉與自定義佈局
- 4. 旋轉UIBarButtonItem
- 5. 自定義界面
- 6. UIToolbar自定義UIBarButtonItem
- 7. 如何旋轉UIBarButtonItem?
- 8. 自定義的UINavigationController和的UIBarButtonItem
- 9. 分組和旋轉自定義尺寸
- 10. UIImage旋轉自定義度
- 11. 旋轉自定義視圖?
- 12. 旋轉UIImage自定義度
- 13. 的UIBarButtonItem自定義圖標
- 14. UINavigationController的自定義UIBarButtonItem/UISegmentedControl
- 15. 自定義MembershipProvider與Web界面和DAL
- 16. CAShapeLayer減慢界面旋轉
- 17. 黑莓自定義用戶界面和自定義組件
- 18. 當我旋轉ipad時,如何從拉伸的自定義視圖停止UIBarButtonItem?
- 19. 如何將自定義的UIBarButtonItem使用界面whice所有使用自定義UINavigationBar的
- 20. 自定義UIBarButtonItem與石英
- 21. 自定義UIview自由旋轉太慢
- 22. 如何自定義定製的UIBarButtonItem
- 23. 帶「經典」旋轉框顯示器的自定義旋轉盒
- 24. 定義界面
- 25. 自定義Visual Studio代碼的界面?
- 26. Django中的自定義管理界面
- 27. fullcalendar上的自定義設計界面
- 28. 旋轉在JavaScript界面的按鈕
- 29. 添加自定義的UIBarButtonItem到UINavigationBar的
- 30. 如何使我的界面方向自動旋轉爲縱向?
你的意思是改變按鈕的屬性從'didRotateFromInterfaceOrientation:'視圖控制器的方法?我認爲從代碼設計的角度來看它非常醜陋 - 視圖控制器除了調整按鈕是足夠的工作,這些按鈕是作爲uinvigationitem的子項的barbuttons的自定義視圖,這些按鈕位於uinvaigationbar上 - 瘋狂!我希望蘋果有更好的解決方法... – peetonn 2013-04-25 10:10:10
是的,因爲這是您的自定義視圖,您應該自己控制它,也可以覆蓋ViewControllers中的 - (void)layoutSubviews以重置任何子視圖的大小和位置 – shanegao 2013-04-25 12:45:36
好吧,是的,我同意......但在我看來,這些優秀的曲子限制了我們不使用「好」的代碼設計 - 例如,在這種情況下,我看到更合乎邏輯的設計這樣一個按鈕,它將完全自動處理它的內容本身。我認爲特別是如果蘋果提供任何類型的'didAdjustFrameForNewOrientation:'調用或者像這樣的話,這種情況就可以解決。 – peetonn 2013-04-25 13:51:53