Ich habe eine benutzerdefinierte UIView mit 3 Tabellenansichten, die Tabellenansichten sind selbstauslegung abhängig von dem Inhalt sie haben, und sie zeigen eine andere Spitze, wenn sie leer sind als wenn sie habe Inhalt. All dies ist in eine Bildlaufansicht eingebettet und es funktioniert bereits, meine Ansicht scrollt und die Tabellenansichten zeigen den Inhalt entsprechend an und sie passen sich automatisch an, die Größe der Bildlaufansicht passt sich auch ohne Probleme an.Stellvertreter zum Steuern einer Schaltfläche in einer Zelle funktioniert nicht
In zwei der Tabellenansichten, wenn die Tabellenansichten Elemente haben, gibt es einige Schaltflächen in der Zellenspitze, auf die ich zugreifen möchte, zusammen mit dem Index der Zelle innerhalb des View-Controllers, wo ich die Tabellenansicht definiert habe.
Hier im Bild ich den Tableviews mit je einem Punkt bin zeige, hat die Canastas Tableview nur eine Löschpunkt-Taste und die Productos Tableview verfügt über eine Löschtaste Element und einen Schritt der erhöhen oder zu verringern Menge.
Ich fand eine Lösung mit Delegaten in StackOverflow Get button click inside UI table view cell, die ich implementiert. Aber aus irgendeinem Grund funktioniert es nicht und der Code in der Delegate-Methode wird nicht ausgeführt.
Hier ist mein Code:
CanastasViewCell
import UIKit
protocol CanastasViewCellDelegate: class {
func closeButtonTapped(at index: IndexPath)
}
class CanastasViewCell: UITableViewCell {
@IBOutlet weak var imagenProducto: UIImageView!
@IBOutlet weak var nombreProducto: UILabel!
@IBOutlet weak var descProducto: UILabel!
@IBOutlet weak var precioProducto: UILabel!
@IBOutlet weak var closeButton: UIButton!
weak var delegate: CanastasViewCellDelegate?
var indexPath: IndexPath!
override func awakeFromNib() {
super.awakeFromNib()
}
@IBAction func eliminarProducto(_ sender: AnyObject) {
self.delegate?.closeButtonTapped(at: indexPath)
}
}
CarritoViewController
import UIKit
class CarritoViewController: UIViewController, UITableViewDelegate,
UITableViewDataSource, CanastasViewCellDelegate {
func closeButtonTapped(at index: IndexPath) {
print("Button tapped at index:\(index)")
}
Ich habe ein Problem mit Ihrem Code, da es nicht auf Englisch ist. Was bedeutet EliminarProducto? – paper1111
eliminarProducto bedeutet deleteProduct und es sollte das Produkt aus dem indexPath.row löschen (ich habe diesen Teil noch nicht codiert), also sollte es gerade jetzt gedruckt werden Button am Index angetippt: (indexPath.row) aber es wird nicht ausgedruckt etwas. –
Überprüfen Sie, ob Sie die Taste ordnungsgemäß an die '@ IBAction' angeschlossen haben. – paper1111