gpt4 book ai didi

swift - 如果使用自动布局和约束,如何快速找到按钮的frame.origin x 和y 坐标?

转载 作者:行者123 更新时间:2023-11-30 10:21:41 25 4
gpt4 key购买 nike

我正在 Swift 中使用自动布局,并尝试编写一些代码来在用户按下的按钮正上方添加一个按钮。但是,由于我使用自动布局,并且所有按钮都是以编程方式创建的,以根据屏幕尺寸和方向调整其尺寸,因此我使用的代码只是返回它们的原始值。

需要明确的是,“按钮”是用户按下的按钮,我正在尝试将button2添加到 View 中以直接显示在“按钮”上方。

当前,button2 出现在 20, 20,其中以编程方式应用约束和自动布局之前按钮的原始值。

我的代码是:

    let button = sender as UIButton

// Tried this but does not work: self.view.layoutIfNeeded()
// Also this but this also does not work: button.setNeedsUpdateConstraints()

let button2 = UIButton.buttonWithType(.System) as UIButton
button2.frame = CGRectMake(button.frame.origin.x, button.frame.origin.y - button.frame.height, button.frame.width, button.frame.height)
button2.sizeToFit()
button2.titleLabel?.font = UIFont.systemFontOfSize(15)
button2.setTranslatesAutoresizingMaskIntoConstraints(false)
button2.setTitle(button.titleLabel?.text, forState: .Normal)
button2.setTitleColor(UIColor.darkGrayColor(), forState: .Normal)
self.view.addSubview(button2)

感谢您的帮助,

最佳答案

不要使用框架

let button2 = UIButton.buttonWithType(.System) as UIButton
button2.sizeToFit()

跳过CGRectMake,它不适用于autoLayout,相反,设置约束

 button2.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addConstraint(NSLayoutConstraint(
item:button1, attribute: .Bottom,
relatedBy:.Equal, toItem:button2,
attribute:.Top, multiplier:1, constant:0))

关于swift - 如果使用自动布局和约束,如何快速找到按钮的frame.origin x 和y 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168409/

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