gpt4 book ai didi

swift - 在这种情况下,如何重用 UIPickerView 中的 View ?

转载 作者:行者123 更新时间:2023-11-28 13:45:57 25 4
gpt4 key购买 nike

似乎很多人只是返回一个 UILabel,但在我的例子中,我是在 View 中添加一个标签。观点永远不是零。这是 UIPickerView 的另一种用法,因为我将其组件旋转 90 度并让它横向滚动而不是上下滚动。

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {

if view == nil {

let customWidth = 300
let customHeight = 300

let view = UIView(frame: CGRect(x:0, y:0, width:customWidth, height:customHeight))

let label = UILabel(frame:CGRect(x:0, y:0, width:customWidth, height:customHeight))
if let filter = filters.first(where: {$0.pickerViewRowIndex == row}) {
var leading = ""
if appPurchased == false && filter.requiresPurchase == true { leading = "🔒" }
label.text = "\(leading)\(filter.nameStr)"
}
label.textColor = UIColor.black
label.font = UIFont(name:"HelveticaNeue-Bold", size: 18.0)
label.textAlignment = .center

view.addSubview(label)

view.transform = CGAffineTransform(rotationAngle: 90 * (.pi/180))
label.layer.masksToBounds = false

return view

}else{
print("not nil") // console never prints this line
}

guard let reusedView = view else {
assertionFailure("pickerView label view container never set")
return view!
}

return reusedView
}

最佳答案

The view is never not nil.

正确。文档是错误的。实际上,在选取器 View viewForRow 中不存在重用 View 这样的事情。您总是需要创建一个新 View 并将其返回。

关于swift - 在这种情况下,如何重用 UIPickerView 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55380040/

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