https://github.com/Akkyie/AKPickerView-Swift 라이브러리의 가로가 AKPickerView
입니다. AKPickerView
에서 선택한 항목에 밑줄과 큰 글꼴이 지정됩니다.reloadData를 사용한 AKPickerView의 결과가 이상 함
내 데모는 내가 만든 것을 보여 주며, 선택 항목에 밑줄과 큰 글꼴을 만들 수 있습니다.하지만 구현 결과가 이상한 행동으로 이어집니다.
가 나는 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"
}
}