【问题标题】:Manual UINavigationBar layout issue手动 UINavigationBar 布局问题
【发布时间】:2015-10-30 14:32:09
【问题描述】:
我目前正在创建一个使用 UINavigationBar 的屏幕。设置约束时,我的前导边距 = Superview 的前导边距 - 20,在 IB 中呈现如下
当我将 UIBarButtonItem 添加到左侧(以编程方式或在 IB 中)时,该按钮被渲染得离左边缘太近了:
我在这里做错了吗?
这里是这个场景的约束:
【问题讨论】:
标签:
ios
iphone
swift
autolayout
interface-builder
【解决方案1】:
通过 IB 拖动 UIButton 而不是 UIBarButtonItem。
它会自动创建如下图所示的 UI 组件层次结构。
然后您将能够更改按钮或对齐方式的内容/标题/图像插图。
【解决方案2】:
我在UINavigationItem 中添加了UIBarButtonItem.FixedSpace,如下所示:
let spacer = UIBarButtonItem(barButtonSystemItem: .FixedSpace, target: nil, action: nil)
let editButton = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: "toggleEditing")
spacer.width = 6.0
var leftItems = [UIBarButtonItem]()
leftItems.append(spacer)
leftItems.append(editButton)
navigationItem.setLeftBarButtonItems(leftItems, animated: false)
来源:How to Edit Empty Spaces of Left, Right UIBarButtonItem in UINavigationBar [iOS 7]