This is probably some misconception on my side but I can't see why this doesn't work.
I have created a UITableViewCell subclass, like this:
class MenuCell: UITableViewCell {
var mcImage: String
var mcLabel: String
init(mcImage: String, mcLabel: String) {
self.mcImage = mcImage
self.mcLabel = mcLabel
super.init(style: .default, reuseIdentifier: "reuseIdentifier")
setupView()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setupView() {
let mcImageView = UIImageView()
let mcLabelView = UILabel()
mcImageView.image = UIImage(systemName: mcImage)
mcLabelView.text = mcLabel
// Rest of setup (font, colors, positions...)
addSubview(mcImageView)
addSubview(mcLabelView)
}}
If in my ViewController I write:
var firstCell = MenuCell(mcImage: "plus.circle", mcLabel: "Some text")
It creates the object and works perfectly, I can access my object properties, but why can't I set a property like this:
firstCell.mcImage = "plus.circle" // This doesn't work
It just ignores me, but however I can set any UITableViewCell property:
firstCell.accessoryType = .none // This works