Прежде всего, вы должны отредактировать свой вопрос, просто опубликуйте код, и я отредактирую его для вас, если вам будет сложно сделать отступ или правильно отформатировать его.
Есть несколько способов, которыми я могу думатьделать то, что ты хочешь делать.Самое простое - использовать свойство кнопки tag кнопки.Этот тег должен помочь вам получить доступ к любому объекту (или UIImage
в вашем случае) из вашего массива изображений.Назначьте тег на основе текущего индекса вашего цикла, тогда у каждой кнопки будет общий метод выбора.
import UIKit
class ViewController: UIViewController {
internal lazy var stackView: UIStackView = {
let stackView = UIStackView(arrangedSubviews: [])
stackView.axis = .vertical
stackView.alignment = .fill
stackView.distribution = .fillEqually
stackView.spacing = 10
return stackView
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
// StackView Autolayout
self.view.addSubview(self.stackView)
self.stackView.translatesAutoresizingMaskIntoConstraints = false
self.view.addConstraint(NSLayoutConstraint(item: self.stackView, attribute: .top, relatedBy: .equal, toItem: self.view, attribute: .top, multiplier: 1.0, constant: 100.0))
self.view.addConstraint(NSLayoutConstraint(item: self.stackView, attribute: .leading, relatedBy: .equal, toItem: self.view, attribute: .leading, multiplier: 1.0, constant: 20.0))
self.view.addConstraint(NSLayoutConstraint(item: self.stackView, attribute: .bottom, relatedBy: .equal, toItem: self.view, attribute: .bottom, multiplier: 1.0, constant: 20.0))
// Add Buttons
for index in 1...10 {
let button = UIButton(type: .custom)
button.backgroundColor = UIColor.gray
button.setTitle("Button #\(index)", for: .normal)
button.addTarget(self, action: #selector(self.buttonHandler(_:)), for: .touchUpInside)
button.tag = index
self.stackView.addArrangedSubview(button)
}
}
@objc private func buttonHandler(_ button: UIButton) {
print("Tapped button #:\(button.tag)")
}
}
Надеюсь, это поможет!