我正在iOS 5上開發我的第一款Apple產品。當我使用UITabBarController的而不是時,在多個場景中保持一致的UITabBar對象的最佳方法是什麼?這只是一個標準的UIViewController。我有一個標籤欄,就像我想在一個場景中一樣工作,我希望能夠將它複製到我的其他4個場景中。iOS 5在多個場景中保持一致的標籤欄
2
A
回答
0
假設你真的不想使用UITabViewController
,然後讓你的應用程序委託維持基準您的全球UITabBar
對象,當您從視圖切換到視圖時,您可以請求該實例並將其添加到視圖層次結構中。
1
使用UIAppearance
API在所有UITabBar
實例上設置視覺屬性。
id appearance = [UITabBar appearance];
[appearance setBackgroundImage:someImage];
[appearance setTintColor:someTintColor];
//...
Here小號UIAppearance
代理「可以在UITabBar
設置的屬性的列表SA」:
0
這是非常簡單和容易做(我已經在多個應用程序中完成)。
- 創建一個基於視圖的應用程序。我們將這樣創建的單個VC稱爲「MainViewController」。
- 使用圖像,按鈕和MainViewController.xib中的內容創建頂部欄。將頂級UIView的背景顏色設置爲「清除顏色」。
- 向此xib添加其他內容。
- 創建視圖控制器和Xib的所有視圖,你需要 顯示(包括初始/第一視圖)。我們稱之爲MyViewController1 & MyViewController2。
- 讓MainViewController與MyViewController1具有「有」關係。含義MainViewController將具有MyViewController1類型的成員變量/屬性。
- 同上MyViewController2。
- 在MainViewController的「viewDidLoad」方法中實例化MyViewController1 & 2。
- 將它們添加爲MainViewController的子視圖。
- 將隱藏的屬性添加到NO爲初始視圖(MyViewController1也許)和YES爲另一個。
- 此時,您會看到MainViewController的頂部欄和MyViewController1的視圖。
- 當您需要切換到MyViewController2時,只需將其隱藏屬性設置爲NO,並將MyViewController1的隱藏屬性設置爲YES。
- 如果你想從MyViewController1過渡動畫來 MyViewController2的CABasicAnimation/CATransition添加到 CALayers到MyViewController1 & MyViewController2(而不是 MainViewController)。然後,您的頂欄(在 MainViewController上繪製)將保持堅如磐石的穩定性,並且會在其下切換/動畫。
- 但是,如果您希望頂欄消失,並且新頂欄與下一個視圖一起顯示,請將CATransition/CAAnimation等附加到MainViewController的CALayer。
隨時問任何問題。
0
你可以做的是使用視圖來包裝你想成爲動態的內容。然後,您可以將第一個可見視圖添加爲此視圖的子視圖。接下來,您需要爲視圖之間的轉換(當前視圖和您想要更改的視圖)之間的轉換設置動畫,以模擬更改視圖控制器。這是我用過的兩個視圖之間的代碼。我的「包裝」視圖被稱爲內容視圖。您需要將其與您已設置的標籤欄進行整合...
[ contentView addSubview:view2 ];
[ view1 removeFromSuperview ];
CATransition *animation = [ CATransition animation ];
[ animation setType:kCATransitionPush ];
[ animation setSubtype:kCATransitionFromRight ];
[ animation setDuration:0.5 ];
[ animation
setTimingFunction:[ CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut
]
];
[[ contentView layer ]
addAnimation:animation
forKey:@"currentTransition"
];
試一下!
0
這不是標準的方式,但如果你真的想在你的應用程序中使用tabBar功能而不使用tabBar。
在每個視圖(尺寸爲199 X 49)的底部創建一個4-5個自定義按鈕(帶圖像),以便它完全消耗視圖的底部(如tabBar)。只有其中一個按鈕在一個視圖休息都是禁用的。你所提供的按鈕功能也應該改變圖像,以顯示當前標籤被點擊。
1
我覺得這種創新的答案將會使用你
Physical Button
相關問題
- 1. 在iOS中模擬一個標籤欄
- 2. 一種考慮多單標籤場景
- 3. 標籤欄垂直偏移的iOS 5
- 4. iOS的故事板:從一個場景到中斷5秒
- 5. Android的標籤聽衆保持2個標籤活着背景
- 6. iOS標籤欄項目導致Twitter
- 7. Swift - 在PageViewContoller場景中隱藏標籤欄
- 8. Unity 5.在新場景打開之前不保存場景
- 9. 黃瓜中的多個標籤3.0.1不運行場景
- 10. 在應用和標籤欄的第二視圖插入標籤欄包含多於5個標籤
- 11. 在iOS中點擊標籤後是否可以更改場景?
- 12. iOS的自定義標籤欄項目個子比標籤欄
- 13. Spritekit:改變場景並保持背景
- 14. 從UITabBarController場景中刪除標籤欄項目
- 15. 如何訪問iOS 5中的標籤欄控制器?
- 16. iOS - 標籤欄UIWebView
- 17. sprite套件場景+標籤欄控制器
- 18. iOS標籤欄,如何seque到一個新的標籤欄視圖
- 19. 黃瓜:飛行中的標籤場景
- 20. JavaFX中的多個場景
- 21. 通過故事板場景的變化使標籤內容保持不變
- 22. iOS SpriteKit場景 - 多場景在屏幕上
- 23. iOS最佳實踐:一個場景一個控制器或多個場景一個控制器?
- 24. 在一個場景
- 25. 在場景中的每個節點(Three.Point)上放置標籤Three.JS
- 26. iOS的標籤欄混亂
- 27. 保持背景圖像在整個網站HTML/CSS一致
- 28. 在ios 5中創建一個統一的地址搜索欄?
- 29. 在多個場景下選擇上一個段落標記
- 30. 我可以在哪裏一個一個購買iOS的標籤欄圖標?
只是出於興趣,爲什麼不使用的UITabBarController? – Till
3個字。打架俱樂部。 –
[此問題]可能的重複(http://stackoverflow.com/questions/7304388/how-to-create-physical-menu-button-like-the-one-in-android-menu-in-iphone/7430533 #7430533)。 – aopsfan