我的导航栏是否违反了IOS人机界面指南

时间:2018-07-30 14:44:06

标签: ios appstore-approval

我想重新定位导航栏的左右按钮,以便有三个,并且它们之间的间距相等。为此,我查看了以下问题以供参考:stackover flow - How to edit position of navigation bar button。我设法通过更改按钮框架的大小来自行解决,如下所示:

My Navigation Bar (Black and white boxes are buttons in the navigation bar)

但是,该帖子称如果我要打破HIG,那么我的应用程序将从应用商店中删除。所以我想知道这在多大程度上是正确的(因为我不必破坏Xcode即可实现我想要的功能),以及我现在拥有的东西是否安全。

这是我的代码:

viewDidLoad() {

    let todolistButton = UIButton(type: .system)
    todolistButton.backgroundColor = UIColor.black
    todolistButton.frame = CGRect.init(x: 0, y: 0, width: (view.frame.width-50)/3, height: 44)
    navigationItem.leftBarButtonItem = UIBarButtonItem(customView: todolistButton)

    let scheduleButton = UIButton(type: .system)
    scheduleButton.backgroundColor = UIColor.black
    scheduleButton.frame = CGRect.init(x: 0, y: 0, width: (view.frame.width-50)/3, height: 44)

    let calendarButton = UIButton(type: .system)
    calendarButton.backgroundColor = UIColor.white
    calendarButton.frame = CGRect.init(x: 0, y: 0, width: ((view.frame.width-50)/3)+2, height: 44)

    navigationItem.rightBarButtonItems = [UIBarButtonItem(customView: scheduleButton), UIBarButtonItem(customView: calendarButton)]
}

谢谢!

1 个答案:

答案 0 :(得分:1)

通常,Apple实际上并不拒绝破坏HIG的应用程序。

但是,您的解决方案有一个问题:您在view.frame.width中使用viewDidLoad。当时视图的大小可能不正确。在viewWillLayoutSubviews之前,您不能依靠视图的大小是正确的。