iOS7 では、以前のバージョンではなく、タブ バーを通過する行があります (下のリンクのサンプル画像に緑色の矢印で示されています)。
問題がどこから来るのかわかりません。それを修正する方法はありますか?
どうもありがとうございました。
iOS7 では、以前のバージョンではなく、タブ バーを通過する行があります (下のリンクのサンプル画像に緑色の矢印で示されています)。
問題がどこから来るのかわかりません。それを修正する方法はありますか?
どうもありがとうございました。
iOS 7 で UITabBar の高さを確認する必要があると思います。 UITabBar の高さに従って、正確な結果を得るにはイメージを再設計する必要があるため、Apple が UITabBar の高さを減らした可能性があります。
この [[UITabBar の外観] setShadowImage:[UIImage imageNamed:@"transparentImage.png"]] を使用します。
transparentImage.png は 0 アルファ サイズ 1x1 ピクセルの画像にすることができます
UITabBar の高さよりも高いカスタム UITabBarItem に苦労している場合は、CALayer を使用して、デフォルトの UITabBar の shadowImage と backgroundImage (ぼかし効果付き) を保持できるソリューションを実現できます。
UITabBarController サブクラスでこのコードを使用しています。
- (id) init
{
if ((self = [super init]))
{
self.delegate = self;
CALayer * superLayer = self.tabBar.layer;
CALayer * layer = [CALayer layer];
layer.bounds = CGRectMake (0.0f, 0.0f, 62.0f, 56.0f);
layer.contents = (id) [UIImage imageNamed: @"custom-tabbaritem"].CGImage;
layer.anchorPoint = CGPointMake (0.5f, 1.0f);
layer.position = CGPointMake (superLayer.bounds.size.width / 2.0f, superLayer.bounds.size.height);
layer.zPosition = 1.0f;
[self.tabBar.layer addSublayer: layer];
}
return self;
}
、およびlayer.frame = CGRectMake (...)
の代わりに使用することもできます。これらを使用して、サブレイヤーを. などの UITabBarControllerDelegate メソッドを実装することで、これにカスタム アクションを実行させることができます。たとえば、モーダル ビュー コントローラーを提示します。bounds
anchorPoint
position
UITabBar
tabBarController:shouldSelectViewController:
UITabBarItem
この場合UIViewController
、カスタムのビュー コントローラーとしてプレーンを使用しましたUITabBarItem
(他のものはすべてサブクラスです)。
- (BOOL) tabBarController: (UITabBarController *) tabBarController
shouldSelectViewController: (UIViewController *) viewController
{
if ([viewController isMemberOfClass: [UIViewController class]])
{
SomeViewController * modal = [SomeViewController new];
[tabBarController presentViewController: modal
animated: YES
completion: nil];
modal = nil;
return NO;
}
return YES;
}