簡體   English   中英

iPhone的自定義選項卡欄將選項卡縱向更改為橫向

[英]Custom Tab Bar for iPhone changes tabs portrait to landscape orientation

我正在制作一個標簽欄應用程序,我不僅想要底部的自定義欄,還想要在用戶處於縱向或橫向模式時更改按鈕的功能。

例如,用戶垂直握住iphone = 3個標簽(a,b,c),但是用戶側翻電話,標簽欄現在填充了2個標簽(d,e),這些標簽在向上/向下對齊屏幕的左側,以便用戶可以閱讀它們。

我已經研究了UITabBarController類的子類化,但感覺就像我想要的那樣是不可能的。 我想知道...

1)我怎樣才能做到這一點?

2)在將應用程序推送到App Store時,我自己的標簽欄會出現問題嗎?

我認為實現您描述的內容不應該是應用商店的問題,只要您的實現不會令人困惑並且不會“破壞”標准的tabbar行為。 換句話說,如果它看起來像標准的Apple控件或類似,它應該以非常類似的方式運行,而不是對熟悉標簽欄的用戶“破壞”。 如果你有點小心不要混淆或煩擾用戶,蘋果確實會讓你在UI控件上有一些余地和創造力。

至於你的實現,子類化UITabBarController不是一個非常好的方法,我同意。 要實現自定義tabbar,請從Apple的書中刪除一些內容,編寫一個UIViewController子類,根據UITabBarController的工作原理實現所描述的內容(但避免以任何方式實際使用Apple的UITabBarController)。

您的CustomTabBarController(為方便起見,我們稱之為)基本上應該為橫向和縱向模式項目收集UIViewControllers,圖標和描述文本的集合。 您需要在CustomTabBarController中檢測旋轉事件並將它們傳遞給當前顯示的實際UIViewController - 並且還會有其他連線,例如傳遞viewDidAppear消息等。

一個很好的靈感和提示可能會關注其他人對UIViewController聚合器的實現。 例如:

http://mattgemmell.com/2010/07/31/mgsplitviewcontroller-for-ipad

很棒的建議! 不幸的是,我不相信自己能夠正確地實現所有這些......我只是在目標中編碼 - c為6mo。 現在。 我找到並成功使用的內容我認為其他人可能會發現有用的是以下鏈接:

http://idevrecipes.com/2010/12/17/twitter-app-tab-bar-animation/

這里的人使用他們自己的自定義標簽欄,這本身就很好。 這允許我動態編輯條本身上存在的按鈕數量,以及與這些按鈕對應的圖像和標簽欄本身的高度。 另外,我使用了包含我的標簽欄的View Controller Class的通知監聽器來告訴用戶何時翻轉iphone。 在翻轉時,我以不同方式設置標簽欄,並使用新項目/視圖控制器重新加載。

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];

為了解決方向差異,我只需將標簽欄上顯示的圖像翻轉90度,無論其翻轉方式如何,因此我可以通過4種不同的方式設置條形圖上的項目。

謝謝你的建議。 如果我有點勇敢,我可能會嘗試自己編寫自定義標簽欄!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM