UIButtons an der Unterseite von UIScrollView nicht funktioniert
Erstellte ich eine UIScrollView in meinem storyboards und haben Hinzugefügt 12 UIButtons in eine container-Ansicht, die in der UIScrollView.
beim laufen auf dem iPhone 5s simulator, 9 Tasten können auf dem Bildschirm zu sehen, der rest der Tasten kann nur gesehen werden, wenn Sie nach unten scrollen.
den 9 Tasten, die sich zunächst auf dem Bildschirm zu sehen mit interagiert werden kann. Aber die 3 Tasten am unteren Rand des scroll-Ansicht (die müssen gescrollt werden, um um gesehen zu werden) kann nicht mit interagiert werden.
Ich lief die app auf einem iPhone 6 simulator, der zeigt alle 12 buttons auf dem Bildschirm ohne zu scrollen und die unteren 3 Tasten.
Ich bin mit autolayout.
Ich habe versucht, das hantieren mit den contentSize der UIScrollView und es hilft nicht.
- Zeigen Sie den code, wo Sie sind das hinzufügen der Schaltflächen.
- Die
UIScrollView
's (oder container-Ansicht) Rahmen vielleicht nicht das, was Sie erwarten. Stellen Sie sicher, es ist für die clip-Untersichten und starten Sie erneut. - Ich habe den Taster über storyboard
- ich habe versucht, die änderung seiner clipsToBounds Wert auf true fest, und lief die app wieder, aber nichts hat sich geändert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint, dass Sie brauchen, um erhöhen Sie die frame-Höhe der container-Ansicht. Die
contentSize
der scrollView nur beeinflusst, wie es wird schriftrolle, die ist hier irrelevant.Wenn der Taster außerhalb der container-Ansicht, es wird sich noch zeigen. Jedoch, es kann nicht reagieren auf touch-event.
contentView
auf der Unterseite von meinemscrollView
wenn mit scrollview im storyboard mit autolayout. es ist in der Regel mit einem content-Blick in die scrollview enthält alle anderen Ansichten (z.B. buttons, labels, etc.) die Ansicht "Inhalt" sind in der Regel eingestellt, um gleiche Höhe und die gleiche Breite.
Ihre Inhalte-Ansicht erweitern es ist die Höhe, die Sie brauchen, um hinzuzufügen eine Höhe von constraint-dann weisen Sie es an eine Steckdose, so dass Sie könnte leicht zu manipulieren ist-Wert in Ihrem code. legen Sie dann die Ansicht "Inhalt" height constraint Priorität zu 1000 ("erforderlich") und die content-Ansicht "equal-width:anzeigen" constraint Priorität 750 (hoch).
Für mich war das alles einfach zu Deaktivieren Sie die checkbox Anpassen, Scroll-View-Einsätze in das storyboard der ViewController.
PS: Die obigen Antworten nicht für mich gearbeitet.
Weitere option ist die Verringerung der Priorität in der Inhalts-Ansicht.Mitte Y-Einschränkung.
In Xcode 9, legte ich den contentView wie erforderlich, und die Schaltfläche erweitert unten, die Ansicht auf dem iPhone 5. Ich dynamisch geändert werden, der scrollView.contentSize.Höhe und contentView.Bild in der view-controller. Die scrollView gescrollt für mich, aber ich war noch nicht in der Lage, um die Schaltfläche auszuwählen und sah Warnungen in das Storyboard.
Sobald ich senkte die Priorität auf die Mitte Y-Alignment-Constraint für die contentView, die Warnungen im Storyboard verschwand, und ich war in der Lage, einen Bildlauf zum Ende der scrollView und wählen Sie die Schaltfläche auf dem iPhone 5 simulator.
HINWEIS: ich bin immer noch die überprüfung der Geräte-Größe und die Größe des scrollView.contentSize.Höhe Wert in viewWillLayoutSubviews() für kleine Geräte.
(UIDevice.aktuelle.isSmallDevice ist ein Aufruf zu einer Verlängerung der UIDevice, der einen bool zurückgibt, bestimmt durch die Bildschirm-Größe)
Fügen Sie alle Untersichten von container zu ScrollView. Und blenden Sie die container ein. Stellen Sie sicher container(ContainerView der scrollView) sollte auch eine Untersicht der scrollView.