簡體   English   中英

這是iOS私有API的實現嗎?

[英]Is this iOS Private API implementation?

我正在開發一個iOS應用,其中需要更改UITabBar的高度。 首先,我通過tabbar的frame屬性對其進行了更改,但是並沒有得到期望的結果,並且圖標尺寸也非常小。 因此,我編寫了以下代碼來更改標簽欄的背景並增加其圖標的大小。

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;
        }
    }
}

因此,我想確認一下:“此代碼是否可以安全批准?”

您沒有使用未公開的API,但是您可能正在使用HIG 沒有明確的方式說蘋果是否會接受,但絕對不建議反對HIG

祝一切順利!

您不必擔心因為使用私有API而被拒絕,因為您沒有使用私有API。 現在,許多應用程序都帶有自定義標簽欄,因此在此基礎上也不應該成為問題。 但是,通過某些方式來樣式化標簽欄,您可能並沒有遵循iOS人機界面指南 根據《 App Store審查指南》 ,尤其是此頁面上的第10節,未遵循界面指南是拒絕的理由。 我建議閱讀指南以獲取更多信息。 無論如何,他們有很多好的建議。

Apple現在對提交的回復似乎比以前快了很多,所以既然看起來您已經完成了所有設置,則可以發送它,看看他們說了什么。 我沒有預見到重大問題,但蘋果公司擁有最終決定權。 他們通常會確切告訴您出了什么問題,以便您輕松進行糾正。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM