gpt4 book ai didi

ios - 带有 reloadData 的 AKPickerView 导致奇怪的行为

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

我有一个来自图书馆的水平 AKPickerView https://github.com/Akkyie/AKPickerView-Swift . AKPickerView 中的选定项带有下划线和更大的字体。

我的演示展示了到目前为止我创建的内容,可以为选择项创建下划线和更大的字体......但是我的实现导致了一些奇怪的行为。其他单元格在设置项目后表现异常,如下所示:

picker view

我认为这与 reloadData 和单元格出列有关,但我不知道如何实现我想要的结果,是什么导致了这个错误?

代码:

import UIKit
import AKPickerView_Swift

class SystemSetupTableViewCell: UITableViewCell {

@IBOutlet weak var questionTitle: UILabel!
@IBOutlet weak var pickerView: AKPickerView!
@IBOutlet weak var unitTitle: UILabel!

fileprivate var answers: [String]!

override func awakeFromNib() {
super.awakeFromNib()

pickerView.delegate = self
pickerView.dataSource = self
}

func configure(questionTitle: String, answers: [String]){
self.questionTitle.text = questionTitle
self.answers = answers

pickerView.font = UIFont.systemFont(ofSize: 50)
pickerView.highlightedFont = UIFont.boldSystemFont(ofSize: 100)
pickerView.reloadData()
}
}

extension SystemSetupTableViewCell: AKPickerViewDataSource {
func numberOfItemsInPickerView(_ pickerView: AKPickerView) -> Int {
return answers.count
}

func pickerView(_ pickerView: AKPickerView, titleForItem item: Int) -> String {
return answers[item]
}
}

extension SystemSetupTableViewCell: AKPickerViewDelegate {

func pickerView(_ pickerView: AKPickerView, configureLabel label: UILabel, forItem item: Int) {

if pickerView.selectedItem == item {
let underlineAttribute = [NSUnderlineStyleAttributeName: NSUnderlineStyle.styleSingle.rawValue]
let underlineAttributedString = NSAttributedString(string: label.text!, attributes: underlineAttribute)
label.attributedText = underlineAttributedString
}
}

func pickerView(_ pickerView: AKPickerView, didSelectItem item: Int) {

pickerView.reloadData()

unitTitle.text = "\(answers[item]) liters"
}
}

最佳答案

我通过更新库中的代码解决了这个问题。

变化是:

  • 覆盖单元格中的 isSelected,这样单元格就会发生变化。

更多信息请访问:https://github.com/Akkyie/AKPickerView-Swift/issues/35

SimonArcher 有正确的解决方案。

关于ios - 带有 reloadData 的 AKPickerView 导致奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42932020/

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