swift - PickerView 不显示 viewForRow - Swift - 以编程方式
问题描述
我正在设置一个 UIPickerView,为了做到这一点,我决定使用返回 UIView 的 UIPickerViewDelegate 的 viewForRow 方法。
pickerView 正确显示,但选择器的“已选择”状态,应该代表使用完整 alpha 渐变选择的元素的状态没有出现。
我只能在元素不处于选定状态时看到它们。
这是实际的代码:
class DurationPickerView: UIPickerView {
let inView : UIView = {
let view = UIView(frame: .init(x: 0, y: 0, width: 50, height: 50))
let imageView = UIImageView(image: #imageLiteral(resourceName: "infinity").withRenderingMode(.alwaysOriginal))
imageView.tintColor = .white
view.addSubview(imageView)
imageView.fillSuperview()
return view
}()
let tfView : UIView = {
let view = UIView(frame: .init(x: 0, y: 0, width: 50, height: 50))
let label = UILabel(text: "24h", font: UIFont(name: "avenir-black", size: 20), textColor: .white, textAlignment: .center
, numberOfLines: 0)
view.addSubview(label)
label.fillSuperview()
return view
}()
}
extension DurationPickerView : UIPickerViewDelegate{
func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
return 50
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
switch row {
case 0:
return inView
default:
return tfView
}
}
}
extension DurationPickerView : UIPickerViewDataSource{
func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return 2
}
}
解决方案
推荐阅读
- javascript - 在控制台中模拟调用 onMouseDown
- python - 获取数字列表的更快方法
- wordpress - 我可以在哪里编辑似乎不在代码中的 wordpress 文本?
- ruby-on-rails - 我无法在我的 Rails 应用程序中创建 manifest.json
- wordpress - Wordpress 回显或获取除最后 6 个字符外的单个帖子标题
- mongodb - 如何在 F# 中对 Mongo 集合进行排序
- javascript - 获取符号名称
- asp.net-mvc - 问题添加涉及在 ASP.NET MVC 5 中使用实体框架代码优先引用 ApplicationUser 的实体的迁移
- java - jlink 打包当前平台的二进制文件
- python-3.x - 在Python中在偶数x轴上不均匀地绘制多个箱形图