ios - 这是 iOS 私有(private) API 实现吗?

标签 ios uitabbar iphone-privateapi

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

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

最佳答案

您不必担心因使用私有(private) API 而被拒绝,因为您没有使用私有(private) API。现在商店中的许多应用程序都带有自定义选项卡栏,因此在此基础上这也不应该成为问题。但是,通过以某种方式设置选项卡栏样式,您可能不会遵守 iOS Human Interface Guidelines 。根据App Store Review Guidelines ,尤其是 this page 上的第 10 节,不遵循接口(interface)指南是拒绝的理由。我建议阅读指南以获取更多信息;无论如何,他们有很多好的建议。

苹果现在响应提交的速度似乎比以前快了很多,所以既然看起来你已经把一切都设置好了,你可以把它发送进去看看他们怎么说。我预计不会出现重大问题,但苹果拥有最终决定权。他们通常会告诉您到底出了什么问题,以便您可以轻松纠正。

关于ios - 这是 iOS 私有(private) API 实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11452939/

相关文章:

ios - UIBezierPath 数组渲染问题(如何使用 CGLayerRef 进行优化)

ios - 在 UITabbar 中拉伸(stretch)的标签栏图标

ios - UITabBar 宽度不随屏幕尺寸增加

ios - 可以使用私有(private) API 在我的应用程序中以编程方式调用 Siri 吗?

ios - 如何优化我的代码以在不同的类中使用一种方法而不是多个相同的方法?

ios - 如何在 swift 中的标签中嵌入自定义按钮?

iphone - iOS私有(private)API文档

ios - iOS 中是否有私有(private) API 可用于读取/写入来自其他应用程序的保存数据?

iOS - 调用方法 : [self. navigationController pushViewController : animated:], 屏幕全黑

ios - 从 UITabBarItem 中删除渐变/光泽