14

我有一個奇怪的,我似乎無法修復。我目前正在努力將我的應用更新到iOS7。這一切都在iOS6中工作。它是一個通用的應用程序,因此使用相同的xib文件。但是iPad在某些方面使用UISplitViews。就像我說的,這一切都在iOS6中工作哦,這一切都可以在iPhone上運行。UISplitView與UITabbar

問題是底部的灰色條。我將標籤欄更改爲不透明,以便正確地移動視圖,因爲我已將一些用戶界面剪切到視圖的底部,並且位於標籤欄下方,側面在那裏。但如果我把它放回到半透明的酒吧,它會在下面,但適當延伸。如果我不,它會添加一個酒吧。其他選項卡在不使用splitview時可以正常工作。

以編程方式添加UISplitviewController。

查看相關圖片瞭解更多描述。

The grey bar is between my splitview and tabbar

這是我曾嘗試:

  • 添加於SPLITVIEW自動調整大小
  • 在splitviews子視圖必須經過廈門國際銀行自動調整
  • 試圖迫使SPLITVIEW是屏幕邊界
  • 刪除所有視圖上的剪輯
  • 刪除d autoresize subviews

任何想法都會受到歡迎。

謝謝大家。

UPDATE:

設置背景顏色uisplitview,它的顏色黑吧。所以uisplitview肯定會延伸到它。

+0

你好MashDup,我試圖在標籤中實現Splitview控制器。你能指導我如何製作。 –

回答

30

我分類了UISplitViewController,並將下面的行添加到viewDidLoad,並修復了灰線。

self.extendedLayoutIncludesOpaqueBars = YES; 
+1

太神奇了,謝謝。我讀到這個,並偶然發現這個頁面,幫助更多。任何有意見不妥的人都可以參考。 http://www.brianjcoleman.com/ios7-weve-got-a-problem/ – mashdup

+3

你也可以直接在你的.xib文件中設置這個屬性w/out子類...有3個可以配置的擴展屬性。 – konran

+1

+1讓我走上正軌;由於我未知的原因,我需要檢查其他擴展屬性之一以擺脫灰色條。 – mvds

5

我相信我找到了替代解決方案。我有完全相同的問題,主要是因爲我們都在對蘋果公司的指導方針做一些事情,這些指導方針有一個嵌在Tabbar控制器內的SplitViewController(SplitView應該是根視圖)。這在iOS 5/6中是可以的,但是現在在iOS 7中,實現這一點的副作用太多了。

當您將條形圖設置爲半透明時,您看到視圖完全伸展的原因是因爲在繪製視圖時不考慮條形圖。如果將半透明設置爲false,則會考慮視圖,並且您會在那裏看到該灰色條,因爲這是您的視圖假裝屏幕底部有一個標籤欄。

與往常一樣,SplitViewcontroller的高度無法更改,因爲它由可見窗口高度決定。

我試過你所做的一切,然後一些。真正的解決方案來自使用第三方分割視圖控制器。我建議切換到https://github.com/mattgemmell/MGSplitViewController。這個分割視圖控制器實際上是一個大視圖,其中有容器視圖。正因爲如此,您可以避免將實際的分割視圖控制器放在標籤欄中的所有副作用。

如果這不會讓你的船浮起來,你可以創建你自己的解決方案,它遵循同一個想法,即擁有一個包含兩個容器視圖的UIViewController,儘管MGSplitViewController背後的人已經做得很好。

這是我能夠解決這個問題的唯一方法,讓我知道如果你找到替代方案。

+0

要接受你的回答,是的,我試過MGSplitViewController。最後我沒有這樣做。我的解決方案允許半透明標籤欄和調整視圖的需要它的部分。奇怪的是,桌子相應地調整自己。謝謝你的答覆,但:D – mashdup

+0

我的解決方案是刪除我設置爲「半透明」的行到NO,現在我的自定義splitViewController在tabBarController內工作。謝謝! – quarac

0

對於控制器是UISplitViewController的詳細視圖,你只是這樣做:

-(UITabBarController*)tabBarController{ 
    return nil; 
} 
2

而不是創造UISplitViewController一個子類,我只是說此代碼對我主人的viewDidLoad

self.splitViewController?.extendedLayoutIncludesOpaqueBars = true