2017-04-25 1 views
0

Ich arbeite derzeit an einem UITextField, die eine UITableView ausgesetzt wird, wenn eine Liste von Ergebnissen basierend auf der Eingabe in der UITextField gefüllt ist. Es ist also grundsätzlich eine autocomplete Funktionalität.Holen Sie sich die y-Position einer Ansicht innerhalb eines UIScrollView

Alles funktioniert und zieht ganz gut, wenn man es in einem normalen UIView verwenden aber sobald ich meine UITextField in einer Struktur wie dieser

setzen | - UIView
| - UIScrollView
| - - UIView
| ---- UIView
| ----- UIImageView
| ----- UITextField

Der Tisch wird in die falsche Position gezogen. Dies ist, was ich den Rahmen des Tableview berechnen tun:

exposedFrame = CGRect(x: view.frame.minX, y: self.frame.maxY, width: view.frame.width, height: tableHeight) 

wo view ist das Top-UIView und self die UITextField ist.

In diesem Fall ist die Y-Position falsch. Die Frage ist jedoch, wie kann ich die richtige y-Position innerhalb der Scrollview erhalten?

Antwort

0

Die Berechnung scheint korrekt zu sein. Ich denke, Sie fügen die Tabellenansicht der falschen Ansicht hinzu (vielleicht die Bildlaufansicht, ausgehend vom Titel der Frage).

| - UIView

| - UIScrollView

| --- UIView

| ---- UIView ->Tabelle view hier!

| ----- UIImageView

| ----- UITextField

Meine Erfahrung: Ich bin mir nicht sicher, ob Sie diese brauchen werden, aber ich hatte vor kurzem um eine ähnliche Pop-Over-Kontrolle zu implementieren. Wann immer ich diese Subview hinzufügen musste, musste ich auch das Layout von superView layoutIfNeeded aufrufen. Ich habe das mit Delegation gemacht. Beachten Sie außerdem, dass die LayoutSubViews von superView eine Logik haben sollten, um ihre Höhe neu zu berechnen, nachdem die Tabelle hinzugefügt wurde. Andernfalls erscheint die Tabelle, ist aber (zumindest in meinem Fall) nicht interagierbar.

Verwandte Themen