这是iOS Private API实现吗?

bjp0bcyl  于 11个月前  发布在  iOS
关注(0)|答案(2)|浏览(120)

我正在开发一个iOS应用程序,其中需要改变UITabBar的高度。首先,我通过tabbar的frame属性改变了它,但这并没有给予期望的结果,图标尺寸也很小。所以,我写了下面的代码来改变tabbar的背景,并增加其图标的大小。

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

字符串
所以我想确认一下,“这个代码是否可以安全地通过审批?”

beq87vna

beq87vna1#

你不必担心因为使用私有API而被拒绝,因为你没有使用。现在商店里的许多应用都有自定义的标签栏,所以这也不应该是一个问题。但是,通过某些方式来设计标签栏,你可能没有遵守iOS Human Interface Guidelines。根据App Store Review Guidelines,特别是关于this page的第10节,不遵循接口指南是拒绝的理由。我建议阅读指南以获得更多信息;无论如何,他们有很多好的建议。
苹果现在似乎比以前更快地回复提交的内容,所以既然你看起来已经设置好了一切,你可以把它发送进去,看看他们怎么说。我不认为会有什么大问题,但苹果有最终决定权。他们通常会告诉你到底哪里出了问题,这样你就可以很容易地纠正它。

vc6uscn9

vc6uscn92#

你并没有使用没有文档的API,但是你可能在玩HIG。没有明确的方法说苹果是否会接受这一点,但绝对不建议去反对HIG。
所以一切顺利!

相关问题