2016-04-16 19 views
1

Ich bin mir nicht sicher, ob der Titel dieser Frage passt. Aber unten möchte ich erreichen.
Ich versuche, ein UI-Design zu implementieren, wobei auf der obersten Ebene eine UITableView und die hintere Ebene eine UIView ist. Wenn die Zelle in der UITableView angetippt wird, wird die UIView angezeigt. Hier ist der schwierige Teil, ich möchte, dass die UITableView nach rechts gleitet und 2/3 der UIView aufdeckt. So wird es 2/3 des Bildschirms von links ist die UIView, 1/3 des Bildschirms ist die UITableView.
Hier ist ein Bildschirm von dem, worüber ich gesprochen habe. enter image description hereenter image description here
Ich habe SWRevealViewController versucht, aber es ist nicht genau das, was ich will.
1. Wenn ich auf die Zelle klicke, passiert nichts. Aber ich konnte panGesture verwenden, um die UITableView nach rechts zu ziehen und 2/3 der hinteren UIView aufzudecken.
2. Wenn ich ein Segment von der Zelle mit der UIView in stroyboard verbinde, wenn ich auf die Zelle tippe, wird es nur die ganze UIView aufdecken.
Ideen auf decken Teil der Rückansicht mit iOS und swift

Ich würde einige Ideen schätzen und mich auf die richtigen Richtungen zeigen.

+0

Sie müssen nur die führenden und nachlaufenden Beschränkungen Ihrer Tabellenansicht anpassen, um es offscreen zu schieben – Paulw11

+0

@ Paulw11 Ich bin nicht sicher, wie ich erreichen kann, was Sie vorgeschlagen, würde ich mich freuen, wenn Sie mir ein schnelles Beispiel zeigen könnten. –

+0

Es ist schwer, schnell zu zeigen. Im Grunde würden Sie Ihre Hintergrundansicht und Ihre Tabellenansicht im selben View-Controller haben, mit der Tabellenansicht oben. Sie können @IBOutlet-Referenzen auf Constraints erstellen, so dass Sie die Referenz für die führenden und abschließenden Constraints der Tabellensichten erhalten können. Dann, wenn eine Zeile ausgewählt ist, können Sie die Eigenschaft 'constant' der beiden Bedingungen ändern, um die Tabellenansicht vom Bildschirm zu verschieben. – Paulw11

Antwort

0

Es gibt eine Möglichkeit, dies zu tun, ist das Hinzufügen der UITableView oben auf der UIView.

Zuerst fügen Sie die UIView auf der Rückseite (vielleicht als erste). Fügen Sie dann das UITableView oben auf dem UIView wie folgt hinzu.

yourUIView.frame = self.view.frame; 
self.view.addSubview(yourUIView); 

yourUITableView.frame = self.view.frame; 
self.view.addSubview(yourUITableView); 

Danach wählen Sie eine Zelle aus, animieren Sie die UITableView auf die 2/3 des Bildschirms.

UIView.animateWithDuration(0.5) { 
    yourUITableView.frame = CGRectMake(self.view.frame.size.width/3*2, 0, yourUITableView.frame.size.width, yourUITableView.frame.size.height); 
} 
0

enter image description here

enter image description here

können Sie die Einschränkung verwenden und mit der Tabellenansicht spielen wie erwartet.

+0

Aber das kann die Beschränkung nur einmal setzen, richtig? Dann bin ich mir nicht sicher, wie das mit dem zusammenhängen kann, was ich erreichen möchte. –

+0

haben einen Ausgang für diese Einschränkung und ändern den konstanten Wert, um die Tabellenansicht dynamisch zu verschieben –