2

我正在开发一个需要更改 UITabBar 高度的 iOS 应用程序。首先,我通过 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;
        }
    }
}

所以我想确认一下,“这个代码是否可以安全地获得批准?”

4

2 回答 2

1

您没有使用未记录的 API,但是您可能正在使用HIG。没有明确的方式说苹果是否会接受这一点,但绝对不建议反对HIG

所以一切顺利!

于 2012-07-12T13:49:39.853 回答
1

您不必担心因使用私有 API 而被拒绝,因为您没有使用私有 API。现在商店中的许多应用程序都带有自定义标签栏,因此在此基础上也不应该成为问题。但是,通过某些方式设置标签栏的样式,您可能不遵守iOS 人机界面指南。根据App Store Review Guidelines,尤其是本页的第 10 节,不遵循界面指南是拒绝的理由。我建议阅读指南以获取更多信息;无论如何,他们有很多好的建议。

Apple 现在对提交的回复似乎比以前快了很多,所以看起来你已经设置好了所有东西,你可以把它发送进去看看他们怎么说。我预计不会出现重大问题,但苹果拥有最终决定权。他们通常会准确地告诉你哪里出了问题,这样你就可以轻松地纠正它。

于 2012-07-12T13:51:34.663 回答