私のアプリでは、次のよう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で each を調べ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 の高さでもほとんどのタッチを拾えることがわかりました。