вот мой класс ячеек, когда я использую расширение для создания розетки.и установка значения с помощью метода didSet путем проверки индекса строки.когда я прокручиваю значения меняются странным образом.
import UIKit
class MyLabelCell: BaseTableViewCell {
override func setcellUI() {
setbuttonUI()
}
var rowIndex: Int! {
didSet {
switch rowIndex {
case 2:
myLabel.text = "2222"
case 9:
myLabel.text = "9999"
default:
myLabel.text = "0000"
}
}
}
}
private var myLabel: UILabel = UILabel()
extension MyLabelCell {
fileprivate func setbuttonUI() {
let fontScaller = deviceWidth/375
myLabel = UILabel()
myLabel.translatesAutoresizingMaskIntoConstraints = false
myLabel.textAlignment = .center
myLabel.font = UIFont(name: "Helvetica-Light", size: 15 * fontScaller)
myLabel.minimumScaleFactor = 0.2
myLabel.adjustsFontSizeToFitWidth = true
myLabel.text = "BUTTON"
addSubview(myLabel)
let buttonLeft = deviceWidth/25
let buttonRight = -deviceWidth/25
let buttonHeight = deviceHeight/14.82
let buttonlabelConstraints = [myLabel.leftAnchor.constraint(equalTo: leftAnchor, constant: buttonLeft),
myLabel.rightAnchor.constraint(equalTo: rightAnchor, constant: buttonRight),
myLabel.centerYAnchor.constraint(equalTo: centerYAnchor),
myLabel.heightAnchor.constraint(equalToConstant: buttonHeight)]
NSLayoutConstraint.activate(buttonlabelConstraints)
myLabel.layer.masksToBounds = false
myLabel.layer.cornerRadius = 5
myLabel.clipsToBounds = true
}
}
Тогда Если я создаю Outlets без использования расширений, то это работает правильно.он не повторяет значения и не действует странно.ниже мой код.
import UIKit
class MyLabelCell: BaseTableViewCell {
let buttonLabel: UILabel = {
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.textAlignment = .center
return label
}()
override func setcellUI() {
addSubview(buttonLabel)
let buttonLeft = deviceWidth/25
let buttonRight = -deviceWidth/25
let buttonHeight = deviceHeight/14.82
let buttonlabelConstraints = [buttonLabel.leftAnchor.constraint(equalTo: leftAnchor, constant: buttonLeft),
buttonLabel.rightAnchor.constraint(equalTo: rightAnchor, constant: buttonRight),
buttonLabel.centerYAnchor.constraint(equalTo: centerYAnchor),
buttonLabel.heightAnchor.constraint(equalToConstant: buttonHeight)]
NSLayoutConstraint.activate(buttonlabelConstraints)
}
var rowIndex: Int! {
didSet {
switch rowIndex {
case 2:
buttonLabel.text = "22222"
case 3:
buttonLabel.text = "33333"
case 4:
buttonLabel.text = "44444"
case 7:
buttonLabel.text = "77777"
case 9:
buttonLabel.text = "99999"
default:
buttonLabel.text = "00000"
}
}
}
}
** разве не хорошо использовать расширение для создания торговых точек ???** и почему это так странно.если бы кто-то мог это объяснить, то это было бы здорово.надеюсь, что ваша помощь с этим, чтобы понять.Спасибо всем, ура!и счастливого запоздалого рождества.