作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想重新定位导航栏的左右按钮,以便有三个并且它们的间距相等。为此,我查看了这个问题以供引用: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)]
}
谢谢!
最佳答案
一般来说,Apple 并不会因为破坏 HIG 而拒绝应用程序。
但是,您的解决方案有一个问题:您在 viewDidLoad
中使用 view.frame.width
。当时 View 的大小可能不正确。在 viewWillLayoutSubviews
之前,您不能依赖 View 大小的正确性。
关于ios - 我的导航栏是否违反了 IOS 人机界面指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51596588/
我是一名优秀的程序员,十分优秀!