Определение ваших кнопок в классе UICollectionViewCell и ваших функций в классе UIViewController менее лаги, поскольку они используются повторно;
import UIKit
class YourCell: UITableViewCell {
@IBOutlet weak var yourBtn: UIButton!
var yourButtonAction: (() -> ())?
@IBAction func buttonPressed(_ sender: UISlider) {
yourButtonAction()
}
}
затем в вашем ViewController, где вы вызываете свою ячейку;
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "YourCell", for: indexPath) as! YourCell
cell.yourBtn = {[unowned self] in
// call your functions here, I hope this will be less laggy
print("button pressed")
}
}