iOS 7: Der benutzerdefinierte UITableViewCell-Inhalt wird beim Bearbeiten nicht verschoben?

8

Ich arbeite an einer benutzerdefinierten UITableViewCell mit Bearbeiten. Wenn ich in den Bearbeitungsmodus gehe, werden das Etikett und das Bild nicht richtig verschoben.

%Vor%     
kagmanoj 22.01.2014, 12:47
quelle

7 Antworten

13

Sie sollten alle Untersichten der benutzerdefinierten Zelle der Ansicht nicht der Zelle, sondern dem contentView der Zelle hinzufügen.

Wenn Sie die benutzerdefinierte Zelle mit dem Interface Builder erstellen, können Sie contentView der benutzerdefinierten Zelle im Interface Builder einfach finden. Andernfalls, wenn Sie ohne Interface Builder arbeiten, überprüfen Sie UITableViewCell, die contentView -Eigenschaft hat.

BEARBEITEN: FYI, überprüfen Sie den folgenden Kommentar in UITableViewCell.

%Vor%     
Kyokook Hwang 27.01.2014 09:30
quelle
1

Ich habe diesen Fehler in Xcode 4.5 gesehen. IB verband automatische Layout-Einschränkungen mit der Zelle, nicht mit der contentView der Zelle. In Xcode 5 ist dieses Problem verschwunden. Sie müssen nur Connect-Constraints neu erstellen, wenn sie zuvor in Xcode 4.5 erstellt wurden.

    
Cy-4AH 01.02.2014 06:50
quelle
0

Wenn Sie das Autolayout in DeleteUserCell.xib verwenden
Sehen Sie sich Ihre Einschränkungen an und versuchen Sie einen Editor- & gt; Zurücksetzen auf die vorgeschlagenen Einschränkungen in der Tabellenansichtszelle. Versuchen Sie, den Rahmen der Zelle anzupassen, um zu sehen, wie die Zelle im Bearbeitungsmodus aussehen wird.

Wenn Sie in DeleteUserCell.xib nicht das automatische Layout verwenden
Sehen Sie sich Ihre Autorisierungsmasken für Ihre Unteransichten an. Stellen Sie sicher, dass sie ihre Frames korrekt anpassen, wenn sich ihre Superansicht ändert.

    
SEG 27.01.2014 09:49
quelle
0

Es gibt einige Dinge, die Sie tun können, um es zu beheben, je nachdem, wie Ihr Code strukturiert ist. Es ist mir nicht klar, aus dem Code-Snippet, wie die benutzerdefinierte Nib-Datei für die Zelle verwendet wird.

  • Stellen Sie zunächst sicher, dass die Bilder in Ihrer benutzerdefinierten Zelle nicht als Teil der Zubehöransicht enthalten sind. Weitere Informationen zum Erstellen benutzerdefinierter Tabellenansichtszellen finden Sie im folgenden Link .

  • Zweitens stellen Sie sicher, dass die UIView für Ihre benutzerdefinierte TableCell die gleiche Größe wie die Inhaltsgröße der Tabellenansicht im Bearbeitungsmodus hat. Möglicherweise müssen Sie das Bild neu positionieren, wenn Sie auf Bearbeiten tippen. Mit der folgenden Methode können Sie überprüfen, wann die Bearbeitung erfolgt ist:

    • (void) setEditing: (BOOL) Bearbeitung animiert: (BOOL) animiert

Das heißt, ich würde jedoch so weit wie möglich davon absehen, die Objekte innerhalb einer Zelle neu zu positionieren. Wenn die Zelle mit autoLayout korrekt erstellt wurde und ohne den Bearbeitungsmodus angezeigt wird, passt sie sich automatisch im Bearbeitungsmodus an. Hier ist ein Link , um mehr über das automatische Layout zu lesen.

    
pkaur 27.01.2014 19:50
quelle
0

Eine weitere nützliche Möglichkeit zur Behebung dieses Problems besteht in der Behandlung dieser Ereignisse:

%Vor%

und legen Sie die entsprechenden Rahmen für die entsprechenden Steuerelemente fest.

Ich hoffe, es hilft!

    
NeverHopeless 28.01.2014 09:23
quelle
0

Der folgende Code wird aufgerufen, wenn der Benutzer eine Zelle wischt
So können Sie Ihren Zelleninhalt wie folgt konfigurieren

%Vor%

    
bhavya kothari 30.01.2014 11:59
quelle
-1

Das hilft vielleicht nicht beim eigentlichen Problem, aber ich habe ein paar Probleme mit Ihrem Code entdeckt.

Zuerst das:

%Vor%

Gibt immer denselben Wert zurück? Du könntest genauso gut haben:

%Vor%

Zweitens haben Sie:

%Vor%

Sie erstellen ein DeleteUserCell-Objekt, sondern werfen es dann als BlackedUserCell-Objekt aus?

Wie bei Ihrer eigentlichen Frage müssen Sie beim Aufrufen des Bearbeitungsmodus Ihre Subviews manuell verschieben, um sie zu kompensieren. Alternativ können Sie Auto-Layout verwenden, die dies für Sie tun sollte, aber es ist ein wenig mehr Arbeit. Es gibt viele Auto-Layout-Tutorials hier und im Internet. Hier sind ein paar, um Sie zu beginnen:

Ссылка

Dies hat eine Reihe von Anleitungen, einschließlich einer, wenn Sie XIBs verwenden, wie Sie es tun.

    
CW0007007 27.01.2014 08:40
quelle

Tags und Links