2

UITabBar の高さを変更する必要がある iOS アプリを開発しています。まず、タブバーのフレーム プロパティを介して変更しましたが、期待どおりの結果が得られず、アイコンのサイズも非常に小さかったです。そこで、タブバーの背景を変更し、アイコンのサイズを大きくする次のコードを書きました。

for (UIView *view in ctrl.tabBar.subviews) {
    if ([NSStringFromClass(view.class) isEqualToString:@"_UITabBarBackgroundView"]) {
        [view removeFromSuperview];

        CGRect frame = ctrl.tabBar.frame;
        frame.origin = CGPointZero;
        frame.size.height = floor(frame.size.height / 2);

        UIView *background = [[UIView alloc] initWithFrame:frame];
        background.backgroundColor = [UIColor colorWithRed:0.15 green:0.15 blue:0.15 alpha:1.0];
        background.userInteractionEnabled = NO;

        [ctrl.tabBar addSubview:background];
        [ctrl.tabBar sendSubviewToBack:background];

        [background release];
    }

    for (UIView *subview in view.subviews) {
        if ([NSStringFromClass(subview.class) isEqualToString:@"UITabBarSwappableImageView"]) {
            CGRect frame = subview.frame;
            frame.size.height = 80;
            subview.frame = frame;
            subview.contentMode = UIViewContentModeCenter;
        }

        if ([NSStringFromClass(subview.class) isEqualToString:@"UITabBarButtonLabel"]) {
            CGRect sFrame = subview.frame;
            sFrame.size.height += diff;
            subview.frame = sFrame;
        }
    }
}

そこで、「このコードは承認しても安全かどうか」を確認したいのです。

4

2 に答える 2

1

文書化されていないAPIを使用していませんが、HIGで遊んでいる可能性があります。アップルがこれを受け入れるかどうかを明確に言う方法はありませんが、HIGに反対することは絶対にお勧めしません。

最高です!

于 2012-07-12T13:49:39.853 に答える
1

プライベートAPIを使用していないため、プライベートAPIの使用が拒否されることを心配する必要はありません。現在、多くのアプリがカスタムタブバーを備えてストアにあるので、それでも問題はないはずです。ただし、タブバーのスタイルを特定の方法で設定すると、iOSのヒューマンインターフェイスガイドラインに準拠していない可能性があります。App Storeレビューガイドライン、特にこのページのセクション10によると、インターフェイスガイドラインに従わないことが拒否の理由になります。詳細については、ガイドラインを読むことをお勧めします。とにかく彼らはたくさんの良いアドバイスを持っています。

Appleは、以前よりも提出物への応答がはるかに速いように思われるので、すでにすべてが設定されているように見えるので、それを送信して、彼らの言うことを確認することができます。私は大きな問題を予見していませんが、Appleが最後の言葉を持っています。彼らはしばしばあなたがそれを簡単に修正できるように何が悪いのかを正確に教えてくれます。

于 2012-07-12T13:51:34.663 に答える