[英]change UIPicker height programmatically
我想以編程方式修改 UIPicker 的高度,我嘗試這樣做但是在模擬器上高度保持不變,我沒有看到任何變化。
@objc open func showPicker(title: String?, selected: String?, strings:[String], color: UIColor? = nil, completion:DPPickerValueIndexCompletion?) {
self.pickerValues = strings
let picker = UIPickerView()
picker.delegate = self
picker.dataSource = self
picker.transform = CGAffineTransformMakeScale(0.5, 0.5)
if let value = selected {
picker.reloadAllComponents()
if strings.count > 0 {
OperationQueue.current?.addOperation {
let index = strings.firstIndex(of: value) ?? 0
picker.selectRow(index, inComponent: 0, animated: false)
}
}
}
self.showPicker(title: title, view: picker, color: color) { (cancel) in
var index = -1
var value: String? = nil
if !cancel, strings.count > 0 {
index = picker.selectedRow(inComponent: 0)
if index >= 0 {
value = self.pickerValues?[index]
}
}
completion?(value, index, cancel || index < 0)
}
}
我不明白為什么當您將自動調整大小掩碼轉換為約束時它不能正確調整自身大小,但是當您使用 AutoLayout 時它可以正常工作:
let pickerView = UIPickerView()
pickerView.translatesAutoresizingMaskIntoConstraints = false
pickerView.delegate = self
pickerView.dataSource = self
view.addSubview(pickerView)
NSLayoutConstraint.activate([
pickerView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
pickerView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
pickerView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
pickerView.heightAnchor.constraint(equalToConstant: 500)
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.