Einschränkungen programmgesteuert festlegen

Bin ich zu Experimentieren mit der Verwendung UIScrollView. Nach viel Mühe habe ich endlich den Dreh raus. Aber jetzt habe ich scheinen zu schlagen einen anderen Haken.

In diesem einfachen app, ich habe eine scroll-view mit und um für ihn zu arbeiten, habe ich die Ansicht Boden Platz zu scrollview Einschränkung 0 wie beschrieben hier und es funktioniert gut. Ich mache es über die IB.

Nun habe ich über ein Szenario, in dem ich zu tun haben, dass ein Teil programmgesteuert. Ich habe den untenstehenden code in die viewDidLoad Methode.

NSLayoutConstraint *bottomSpaceConstraint = [NSLayoutConstraint constraintWithItem:self.view
                                                                             attribute:NSLayoutAttributeBottom
                                                                             relatedBy:NSLayoutRelationEqual
                                                                                toItem:self.scrollView
                                                                             attribute:NSLayoutAttributeBottom
                                                                            multiplier:1.0
                                                                              constant:0.0];
[self.view addConstraint:bottomSpaceConstraint];

Aber es scheint nicht zu funktionieren. Es gibt die folgende Meldung in der Konsole-Fenster und ich weiß nicht was ich davon halten soll.

Nicht in der Lage, gleichzeitig zu befriedigen Einschränkungen.
Wahrscheinlich mindestens eine der Einschränkungen in der folgenden Liste ist eine, die Sie nicht wollen. Versuchen Sie dies: (1) betrachten Sie jedes Hindernis und versuchen Sie herauszufinden, die Sie nicht erwartet; (2) finden Sie den code, der Hinzugefügt die unerwünschte Einschränkung oder Einschränkungen, und es zu beheben. (Hinweis: Wenn Sie sehen, NSAutoresizingMaskLayoutConstraints, dass Sie nicht verstehen, finden Sie in der Dokumentation für die UIView-Eigenschaft translatesAutoresizingMaskIntoConstraints)
(
"",
""
)

Kann mir bitte jemand sagen, wie dies zu tun? Ich habe auch schonmal ein demo-Projekt hier, so dass Sie können erhalten eine bessere Vorstellung über das Thema.

UPDATE:

Erste aus Dank für die Antworten. Mit der erwähnten Arten in den Antworten war ich in der Lage, um es arbeiten. Aber ina etwas anderes Szenario nicht. Jetzt bin ich versucht, zu laden, eine Sicht auf einen viewcontroller programmatisch.

Wenn ich kann, erklären. Es gibt 2 view-Controller. Ersten wird eine UITableViewController und der zweite UIViewController. Im inneren, ein UIScrollView. Auch gibt Es mehrere UIViews und einige dieser Ansichten' Höhe, überschreitet die normale Höhe des Bildschirms.

Den UITableViewController zeigt eine Liste von Optionen. Basierend auf der Auswahl des Benutzers, einen bestimmten UIView aus der Menge wird geladen und in die UIViewController mit der UIScrollView.

In diesem Szenario die oben genannten Methode nicht funktioniert. Das scrollen ist nicht passiert. Muss ich etwas anders machen, da ich das laden der Ansicht getrennt?

Ich habe hochgeladen ein demo-Projekt hier, so dass Sie sehen es in Aktion. Finden Sie die Email.xib und wählen Sie E-Mail aus der Tabelle Liste anzeigen.

InformationsquelleAutor der Frage Isuru | 2013-04-09

Schreibe einen Kommentar