Mos*_*she 16 iphone uitabbaritem uitabbar ios
UITabBarItem的宽度会有所不同,具体取决于有多少.
如何确定标签栏项目的宽度?
如果可能的话,我正在寻找一个属性,而不是数学公式,因为在iPad上,标签栏的两侧也存在填充问题.考虑这些截图.注意iPad上标签栏项目两侧的填充(用红色框突出显示).iPhone上不存在此填充.
iPad:

iPhone:

编辑:在下面的评论中已经注意到此解决方案在iOS 5的测试版中不起作用,因此请准备好修改它以满足您的需求.
我认为为了以正确的方式做到这一点,你必须能够到达每个标签栏项目的框架.幸运的是,这是可能的:
CGFloat tabBarTop = [[[self tabBarController] tabBar] frame].origin.y;
NSInteger index = [[self tabBarController] selectedIndex];
CGFloat tabMiddle = CGRectGetMidX([[[[[self tabBarController] tabBar] subviews] objectAtIndex:index] frame]);
Run Code Online (Sandbox Code Playgroud)
上面的代码为您提供了选项卡栏顶部的y坐标和所选选项卡项中间的x坐标.从这里,您可以将指标视图添加到相对于此点的选项卡栏控制器视图中.
免责声明:这种方法的危险在于它UITabBar通过访问其视图层次结构和frame私有UITabBarButton类实例的属性来窥视类的底层.未来的iOS更新可能会(但不太可能)影响/破坏此方法.但是,您没有访问任何私有API,因此不应该从App Store中拒绝您的应用程序.
我制作了一个简单的iPad项目,展示了它的工作原理,并完成了动画制作.
| 归档时间: |
|
| 查看次数: |
12603 次 |
| 最近记录: |