iOS Swift 导航栏按钮向下移动
Posted
技术标签:
【中文标题】iOS Swift 导航栏按钮向下移动【英文标题】:iOS Swift Navigation Bar Buttons Shift Down 【发布时间】:2015-05-01 17:21:41 【问题描述】:我使用以下代码将带有按钮的导航栏添加到我的视图中:
let navBar = UINavigationBar(frame: CGRectMake(0, 20, screenWidth, 44))
var homeButton : UIBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Bordered, target: controller, action: "closeView")
homeButton.image = UIImage(named: "back.png")
var item = UINavigationItem(title: title)
item.leftBarButtonItem = homeButton
if addPlus
var addButton : UIBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Bordered, target: controller, action: "addItem")
addButton.image = UIImage(named: "plus-25.png")
item.rightBarButtonItems = [addButton]
var items = [
item
]
navBar.setItems(items, animated: true)
controller.view.addSubview(navBar)
由于某种原因,当显示任何类型的 UIAlertView 时,栏上的按钮会向下移动。
任何想法为什么会发生这种情况?
【问题讨论】:
您是否将视图包含在 Navigationcontroller 中? 对我来说也一样。它只发生在我使用代码创建的右栏按钮项上(即 viewDidLoad 中的 setRightBarButtonItems)。左栏按钮项目不会向下移动,并且是使用界面生成器创建的。所以它似乎与自定义栏按钮项有关。 【参考方案1】:在您的故事板中,带上一个导航栏并使其自动适应屏幕,不要尝试将其向下移动。
【讨论】:
【参考方案2】:不是最好的解决方案,但由于这种行为只发生在我的自定义栏按钮项(而不是我使用界面生成器制作的栏按钮项)上,我只是用“self.navBarNavItem.setRightBarButtonItems([], animated : true)" 在调用“presentViewController”之前。
然后,如果警报的结果(即用户选择的内容)导致停留在当前视图上(而不是更改视图),那么我在执行该处理程序时将它们重新添加。
这会阻止按钮明显显示在错误的位置,然后在警报完成后将它们放回正确的位置。
【讨论】:
以上是关于iOS Swift 导航栏按钮向下移动的主要内容,如果未能解决你的问题,请参考以下文章