3

iOS7 では、以前のバージョンではなく、タブ バーを通過する行があります (下のリンクのサンプル画像に緑色の矢印で示されています)。

問題がどこから来るのかわかりません。それを修正する方法はありますか?

どうもありがとうございました。

線のあるタブバー

4

6 に答える 6

1

iOS 7 で UITabBar の高さを確認する必要があると思います。 UITabBar の高さに従って、正確な結果を得るにはイメージを再設計する必要があるため、Apple が UITabBar の高さを減らした可能性があります。

于 2013-09-13T14:14:30.303 に答える
0

この [[UITabBar の外観] setShadowImage:[UIImage imageNamed:@"transparentImage.png"]] を使用します。

transparentImage.png は 0 アルファ サイズ 1x1 ピクセルの画像にすることができます

于 2013-09-27T13:45:26.327 に答える
0

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 メソッドを実装することで、これにカスタム アクションを実行させることができます。たとえば、モーダル ビュー コントローラーを提示します。boundsanchorPointpositionUITabBartabBarController: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;
}
于 2013-09-30T15:47:50.763 に答える