In meiner App habe ich einen TableViewController, mit einer TableView, welche im Editing Mode nur ein Reordered Control auf der rechten Seite der TableViewCells anzeigen soll. Der Linke Bereich der TableViewCell soll sich also nicht verschieben, um dort das Delete Control anzuzeigen.
Es hat etwas gedauert, bis ich dies auf meinem Test Device mit iOS 12.x hinbekommen habe. Ich hatte zuerst die Einstellung "Indent While Editing" im InterfaceBuilder bei der TableViewCell deaktiviert, leider ohne Erfolg. Erst die Ergänzung der Methode shouldIndentWhileEditing in meiner Custom TableViewCell Klasse mit einem return NO brachte den gewünschten Erfolg. Die Zellen rücken links jetzt nicht mehr ein. Weiterhin muss die TableView Delegate Methode tableView:editingStyleForRowAtIndexPath: noch UITableViewCellEditingStyleNone zurück liefern, damit auch das Delete Control nicht mehr angezeigt wird.
Ich war also nun zufrieden, wenn iOS 13 nicht wäre. Dort werden die Zellen links eingerückt, obwohl dies in iOS 12 nicht der Fall ist.
Gibt es einen Workaround/Fix, damit die Zeller auch unter iOS 13 links nicht eingerückt werden?
Update: Ich sehe gerade, dass es eine Table View Delegate Methode tableView:shouldIndentWhileEditingRowAtIndexPath: gibt. Ab iOS 13 scheint bei einer fehlenden Implementierung wohl YES als Default verwendet zu werden und das Ergebnis von shouldIndentWhileEditing bei den TableViewCells wird ignoriert. Ob dies ein Bug in iOS 13 oder von Apple gewollt ist lasse ich jetzt mal dahingestellt.
Es hat etwas gedauert, bis ich dies auf meinem Test Device mit iOS 12.x hinbekommen habe. Ich hatte zuerst die Einstellung "Indent While Editing" im InterfaceBuilder bei der TableViewCell deaktiviert, leider ohne Erfolg. Erst die Ergänzung der Methode shouldIndentWhileEditing in meiner Custom TableViewCell Klasse mit einem return NO brachte den gewünschten Erfolg. Die Zellen rücken links jetzt nicht mehr ein. Weiterhin muss die TableView Delegate Methode tableView:editingStyleForRowAtIndexPath: noch UITableViewCellEditingStyleNone zurück liefern, damit auch das Delete Control nicht mehr angezeigt wird.
Ich war also nun zufrieden, wenn iOS 13 nicht wäre. Dort werden die Zellen links eingerückt, obwohl dies in iOS 12 nicht der Fall ist.
Gibt es einen Workaround/Fix, damit die Zeller auch unter iOS 13 links nicht eingerückt werden?
Update: Ich sehe gerade, dass es eine Table View Delegate Methode tableView:shouldIndentWhileEditingRowAtIndexPath: gibt. Ab iOS 13 scheint bei einer fehlenden Implementierung wohl YES als Default verwendet zu werden und das Ergebnis von shouldIndentWhileEditing bei den TableViewCells wird ignoriert. Ob dies ein Bug in iOS 13 oder von Apple gewollt ist lasse ich jetzt mal dahingestellt.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MCDan ()