在特定位置放置一个弹出窗口

时间:2010-08-18 23:50:16

标签: iphone ipad

方案: 我的视图控制器顶部有一个UITabBar。标签栏上有几个按钮。 当用户点击任何一个按钮时,我想在点击的按钮下方显示一个弹出窗口。

我可以毫无问题地显示弹出窗口,但我无法弄清楚如何检测已按下的按钮的位置,因为UITabItem不会暴露帧结构。

如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

您可以自己计算UITabBarItem的框架:

CGFloat tabItemWidth = tabBar.bounds.size.width / [tabBar.items count];
CGRect tabItemFrame = CGRectMake(tabItemWidth * [tabBar.items indexOfObject:tabBar.selectedItem], 0, tabItemWidth, tabBar.bounds.size.height);

(我没有尝试过这段代码,但这个或类似的东西应该可以工作)。

或者,您应该能够继承UITabBar并覆盖touchesEnded:withEvent:。在该方法中,将触摸的位置存储在ivar中。然后在你的UITabBarDelegate的tabBar:didSelectItem:你可以使用touch的位置。