我得到了一个使用 a 的 UI UITabBarController
,并且在其中一个 tabbedViewControllers
中, a View
(作为 a 的箭头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