在我的应用程序UITabBarController
中,我在其中提供了自定义选择/未选择的图像,AppDelegate
如下所示:
UIImage *selectedImage = [UIImage imageNamed:@"home-tab-selected"];
UIImage *unselectedImage = [UIImage imageNamed:@"home-tab"];
UITabBar *tabBar = tabController.tabBar;
UITabBarItem *item1 = [tabBar.items objectAtIndex:0];
[item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
我拥有的图像是 100x100,比普通的标签栏项目大得多。一切正常,我的图像放置得很好,看起来很棒。
我遇到的问题是底层的框架UITabBarButton
仍然是 76x48,只留下一小部分标签“可触摸”。(下图,边框周围有边框)
为了尝试解决这个问题,在我的 subcalssed 中UITabBarController
viewDidLoad
,我遍历了每一个UITabBarButton
,并将框架设置如下:
for (UIView* subView in self.tabBar.subviews)
{
if ([subView isKindOfClass:NSClassFromString(@"UITabBarButton")])
{
[subView setFrame:CGRectMake(subView.frame.origin.x, subView.frame.origin.y, 100, 100)];
}
}
在我这样做之后,我记录了框架并且它们确实发生了变化——但是我的标签栏中的框架永远不会改变——我仍然只能看到并且可以触摸较小的红色框。
这是因为Apple不允许您更改这些框架还是我在这里做错了什么?
有任何帮助!谢谢!
编辑:
最后,我只是把我的标签图像缩小了。我发现 70px 的高度仍然可以吸引大多数人的注意。