我已經給出了使用UITabBarController
的UI,並且在標籤ViewControllers
之一中,需要相對於標籤指標定位(箭頭爲UIImageView
)(箭頭需要指向以x軸爲中心的指標)。我使用基礎數學來模擬基於已知變量的位置,它可以在橫向和縱向方向上適用於iPhone/Pod,但在iPad上無法正常工作(在兩種方向上都有點過分 - 在風景上看起來更糟糕,但可能會只是我的看法)。相對於標籤指標的位置視圖
下面是我用什麼:
int visibleWidth = self.view.frame.size.width;
int tabBarSize = self.tabBarController.tabBar.frame.size.width;
int tabSize = tabBarSize/[self.tabBarController.viewControllers count];
int tabPosition = 2; // hint should point at the 3rd tab
int arrowIconWidth = hintIcon.image.size.width;
int arrowIconHeight = hintIcon.image.size.height;
int tabEmulationPosition = visibleWidth/2 - tabBarSize/2;
int tabOffsetPosition = tabEmulationPosition + (tabSize * tabPosition);
int iconPosition = tabOffsetPosition + (tabSize/2 - arrowIconWidth/2);
有沒有更好的辦法不是試圖「假」數學(也許getBoundingClientRect
類型的方法?)或者是數學接近最好的選擇,假設有一個正確的我有什麼缺陷?
TYIA
感謝您的答覆。我用花車取代了但效果是一樣的。在iPad中,箭頭看起來像是在正確的標籤內,但在最右側。在iPad風景中,它甚至更遠了一點,並且似乎在相鄰標籤指示符的左邊緣。任何其他想法? – momo
也許原因在於標籤欄中的按鈕居中,並且沒有均勻分佈在整個標籤欄上,而是具有兩個頁邊距。你假設它們在你的代碼的第3行中間隔均勻。看到我的編輯解決方案。 – Mundi