Ich habe meine App eingerichtet, so dass ich eine Zelle zu einem ViewController hinzufügen kann, wo die Zelle in der Tabelle angezeigt wird, aber wenn Sie auf die Zelle klicken, wird es erweitert, um mehr anzuzeigen Information. Hier ist der Code ...Wie bekomme ich die tableViewCell nicht zu erweitern, wenn Swipe zu löschen
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var selectedIndexPath: NSIndexPath? = nil
override func viewDidLoad() {
super.viewDidLoad()
tableView.registerNib(UINib(nibName: "CustomViewCell", bundle: nil), forCellReuseIdentifier: "Cell")
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CustomViewCell
cell.clipsToBounds = true
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if selectedIndexPath != nil {
if indexPath == selectedIndexPath {
return 140
} else {
return 38
}
} else {
return 38
}
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// New
switch selectedIndexPath {
case nil:
selectedIndexPath = indexPath
default:
if selectedIndexPath! == indexPath {
selectedIndexPath = nil
} else {
selectedIndexPath = indexPath
}
}
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
}
Alles funktioniert gut mit der Erweiterung und Schließen für die Zelle, außer dass ich die Zelle konfiguriert ist, um Swipe zu löschen, aber die Zelle gerade ausdehnt, wenn ich löschen streichen. Heres der Code:
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Delete") { (action , indexPath) -> Void in
self.editing = false
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let moc = appDelegate.managedObjectContext
moc.deleteObject(self.events[indexPath.row])
appDelegate.saveContext()
self.events.removeAtIndex(indexPath.row)
tableView.reloadData()
}
return [deleteAction]
}
ich die Zelle wie es erweitern das nicht wollen, ist, wenn ich löschen Swipe, Irgendwelche Ideen?
Ich habe versucht, die 140 auf 38 zu ändern und dachte, dass es so ist würde sich überhaupt nicht ausdehnen, wenn ich geklaut habe, aber es ist so, ich glaube nicht, dass dieser Teil des Codes eine Auswirkung darauf hat. Es kehrt einfach zur normalen Größe der Zelle zurück, wenn es geklaut wird. –