gpt4 book ai didi

ios - 我的 UIButtonBarItem 's don' t 使用 FlexibleSpace 正确布局

转载 作者:行者123 更新时间:2023-11-29 01:06:49 25 4
gpt4 key购买 nike

我正在以编程方式快速创建 UIToolBar 及其项目:

    var items = [UIBarButtonItem]()
let leftButton = UIBarButtonItem(image: UIImage(named: "left"), style: .Plain, target: self, action: Selector("doneClickedMaButton"))
let spacer = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let rightButton = UIBarButtonItem(image: UIImage(named: "right"), style: .Plain, target: self, action: Selector("doneClickedRight"))
let searchButton = UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: Selector("doneClickedSearch"))
items.append(leftButton)
items.append(spacer)
items.append(searchButton)
items.append(spacer)
items.append(rightButton)

var toolBar = UIToolbar()
toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 50)
toolBar.translatesAutoresizingMaskIntoConstraints = false
toolBar.backgroundColor = UIColor.redColor()
toolBar.items = items
toolBar.sizeToFit()
view.addSubview(toolBar)
view.addConstraint(NSLayoutConstraint(item: toolBar, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .Bottom, multiplier: 1.0, constant: 0.0))

如果我不添加 spacer 项,那么模拟器将如下所示:

enter image description here

如果我确实有它们,就像这段代码中所说的那样。我明白了:

enter image description here

正如您在这里所看到的,图像现在不仅从屏幕向左掉落,而且它们的顺序也不再正确。

我认为 .FlexibleSpace 只是在项目之间添加动态间距。我在这里错过了什么吗?有人在各种帖子中提到,可以在 UIBarButtonItem 中设置 UILabel 的宽度,这可以使 .FlexibleSpace 识别它。

最佳答案

问题是您没有足够的约束来满足自动布局引擎的要求。您将工具栏固定在底部,但宽度正在缩小,因此它只能容纳按钮,但您希望它是 View 的宽度。尝试类似的东西:

var items = [UIBarButtonItem]()
let leftButton = UIBarButtonItem(image: UIImage(named: "left"), style: .Plain, target: self, action: Selector("doneClickedMaButton"))
let spacer = UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil)
let rightButton = UIBarButtonItem(image: UIImage(named: "right"), style: .Plain, target: self, action: Selector("doneClickedRight"))
let searchButton = UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: Selector("doneClickedSearch"))
items.append(leftButton)
items.append(spacer)
items.append(searchButton)
items.append(spacer)
items.append(rightButton)

var toolBar = UIToolbar()
toolBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 50)
toolBar.translatesAutoresizingMaskIntoConstraints = false
toolBar.backgroundColor = UIColor.redColor()
toolBar.items = items
toolBar.sizeToFit()
view.addSubview(toolBar)
toolBar.leadingAnchor.constraintEqualToAnchor(self.view.leadingAnchor).active = true
toolBar.trailingAnchor.constraintEqualToAnchor(self.view.trailingAnchor).active = true
toolBar.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor).active = true

关于ios - 我的 UIButtonBarItem 's don' t 使用 FlexibleSpace 正确布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com