swift - 如果我将 UIToolBar 作为子视图添加到我的 UIPickerView,是否需要向我的 UIToolBar 添加约束?
问题描述
我正在尝试以UIPickerView
编程方式向我的添加一个简单的“完成”按钮,而不使用情节提要。
当我尝试添加toolBar
为 的子视图时UIPickerView
,工具栏甚至不显示,并且出现一些与约束相关的错误。
关于如何将按钮添加到 PickerView 的任何想法?
这是我的代码片段:
var timerImage = UIButton()
var timer = Timer()
var timerDisplayed = 0
let image1 = UIImage(named: "stopwatch")
let timePicker = UIPickerView()
let timeSelect : [String] = ["300","240","180","120","90","60","45","30","15"]
let toolBar = UIToolbar()
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(ThirdViewController.dismissKeyboard))
func pickerViewConstraints(){
timePicker.anchor(top: nil, leading: view.safeAreaLayoutGuide.leadingAnchor, bottom: view.safeAreaLayoutGuide.bottomAnchor, trailing: view.safeAreaLayoutGuide.trailingAnchor)
}
@objc func timeClock(){
toolBar.setItems([doneButton], animated: true)
toolBar.sizeToFit()
toolBar.isTranslucent = false
toolBar.isUserInteractionEnabled = true
toolBar.barStyle = .default
view.addSubview(timePicker)
timePicker.addSubview(toolBar)
pickerViewConstraints()
timePicker.backgroundColor = .white
DispatchQueue.main.async {
self.timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.Action), userInfo: nil, repeats: true)
self.timerImage.setImage(nil, for: .normal)
}
}
解决方案
不,您不需要添加约束。它可以像:
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
let doneButton = UIBarButtonItem(title: buttonTitle, style: .done, target: self, action: #selector(doneButtonAction))
let cancelButton = UIBarButtonItem(title: cancelTitle, style: .plain, target: self, action: #selector(cancelButtonAction))
let barAccessory = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 44))
barAccessory.barStyle = .default
barAccessory.isTranslucent = true
barAccessory.barTintColor = .blue
barAccessory.setItems([cancelButton, space, doneButton], animated: false)
picker.addSubview(barAccessory)
self.view.bringSubviewToFront(picker)
希望能帮助到你...
推荐阅读
- javascript - TypeError:无法读取未定义的属性“地图”| 不和谐.js
- java - Mockito:想要但没有被调用
- javascript - 如何检查是否
在一个值之后有一个值 已被选中? - asp.net-mvc - NET Core 3.1 MVC 授权/身份验证,使用在单独的 Net Core 3.1 Web Api 中从外部获取的令牌 (JWT)
- javascript - js中RegEx中的匹配模式
- regex - 如何将 UNIX 中的这个正则表达式与 expr 匹配?
- autohotkey - 如何在退出时单击左键?
- python - 在 soup.find_all() 中传递变量
- r - 子集观察数
- python - 如何解决 Django IntegrityError NOT NULL 约束字段?