Вы ссылаетесь на button
из самого замыкания, которое его создает (в предложении селектора), поэтому вы получаете эту ошибку.Это должно работать нормально, если вы измените #selector(buttonPressed(sender: button, image: imageView))
на #selector(buttonPressed(sender: bt, image: imageView))
.Однако более чистый способ сделать это - создать заводскую функцию, например:
func makeButton(at position: CGFloat, taggedWith tag: Int) -> UIButton {
let bt = UIButton()
bt.translatesAutoresizingMaskIntoConstraints = false
bt.tintColor = UIColor.black
bt.backgroundColor = .clear
bt.addTarget(self, action: #selector(buttonPressed(sender: button, image: imageView)), for: .touchUpInside)
bt.tag = tag
/// buttonPosition += 160 /// not sure what this is supposed to do but you'd use the position param here.
bt.layer.cornerRadius = 5
return bt
}
Затем вы вызываете эту функцию для создания кнопок в цикле.Обратите внимание, что buttonPosition
не используется.Также обратите внимание, что ваши кнопки не были добавлены в коллекцию или представление, поэтому вы можете проверить, где кнопки должны находиться и разместить их соответствующим образом.