gpt4 book ai didi

ios - UIPickerView 宽度约束问题

转载 作者:行者123 更新时间:2023-11-28 14:05:15 25 4
gpt4 key购买 nike

我需要将 UIPickerView 添加到 UIAlertController。我使用代码:

let alertView = UIAlertController()
let pickerView = UIPickerView()
pickerView.translatesAutoresizingMaskIntoConstraints = false

alertView.view.addSubview(pickerView)
pickerView.topAnchor.constraint(equalTo: alertView.view.topAnchor, constant: 50).isActive = true
pickerView.bottomAnchor.constraint(equalTo: alertView.view.bottomAnchor, constant: -50).isActive = true
pickerView.centerXAnchor.constraint(equalTo: alertView.view.centerXAnchor).isActive = true
pickerView.widthAnchor.constraint(equalTo: alertView.view.widthAnchor).isActive = true

present(alertView, animated: true)

结果如下:

enter image description here

为什么 UIPickerView 的宽度大于 UIAlertController?

我也试过:

pickerView.widthAnchor.constraint(equalTo: alertView.view.widthAnchor, multiplier: 0.5).isActive = true

但是得到了相同的结果...

最佳答案

当你给出一个宽度约束时,它完全正确。当你给出 alertview.view 的宽度常量时,问题是从你这边看下面的图像,这是一个 UIalertController 的主视图。为了更好地理解看下面的图像(蓝色后面的最后一个 View 颜色 View 颜色和 PickerView 颜色为红色。)。

enter image description here

现在,我们显示实际的 alerview 是主视图的一个 subview (在上图中带有 Ok 按钮的蓝色)。使用 subview 而不是主视图更改宽度约束,例如:-

为了更好地理解:-

for view in alertView.view.subviews {
print(view)
//just add color which is shown in bellow image.
view.backgroundColor = UIColor.blue
}

所以,解决方案是这样的:-

pickerView.widthAnchor.constraint(equalTo: alertView.view.subviews[0].widthAnchor).isActive = true

结果:-

enter image description here

希望对你有帮助谢谢

关于ios - UIPickerView 宽度约束问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071203/

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