UIView höhe mit Programmierung ändern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UIView höhe mit Programmierung ändern

    Hallo zusammen,
    da mir heute bei einer Frage so nett geholfen wurde habe ich noch eine.
    ich möchte von einem UIView ("testView" ist die Bezeichnung) per button die große ändern. Die Breite ist immer die selbe.
    ich habe schon diesen Code probiert

    Quellcode

    1. testView.heightAnchor = 400
    aber da bekomme ich einen Fehler.

    wie kann ich die Höhe mit Programmierung ändern?
    Vielen Dank.

    :)
    ich bin ein absoluter Anfänger und programmieren ist das nicht was ich mache :thumbsup:
  • funboxbolzer schrieb:

    beage schrieb:

    Thallius schrieb:

    Was ihm aber nich nutzt wenn er autolayout benutzt und Consttaints gesetzt hat...

    Und constraints können auch Höhe und Breite sein
    Gut, mag sein. Das nutze ich nicht. Aber view.frame.size.height sollte doch trotzdem funktionieren.
    Danke erst mal.view.frame.size.height hat funktioniert.
    du sollst ALLE beiträge lesen und nicht pfuschen!
  • beage schrieb:

    Aber view.frame.size.height sollte doch trotzdem funktionieren.
    Nein, nicht bei Autolayout. Dort hat der frame nur informativen Charakter. Also Constraint für die Höhe setzen und dann dort die Konstante ändern.

    Michael schrieb:

    Dann rücken die Constraints wieder alles zurecht.
    Na ja, das ist ja schon irgendwie informativ, wenn der gesetzte Frame ständig den Constraints angepasst wird, oder? Auf alle Fälle ist der richtige Weg in diesem Fall über Constraints.

    ciao

    gandhi
  • gandhi schrieb:

    beage schrieb:

    Aber view.frame.size.height sollte doch trotzdem funktionieren.
    Nein, nicht bei Autolayout. Dort hat der frame nur informativen Charakter. Also Constraint für die Höhe setzen und dann dort die Konstante ändern.

    Michael schrieb:

    Dann rücken die Constraints wieder alles zurecht.
    Na ja, das ist ja schon irgendwie informativ, wenn der gesetzte Frame ständig den Constraints angepasst wird, oder? Auf alle Fälle ist der richtige Weg in diesem Fall über Constraints.
    ciao

    gandhi

    warum gibts eigentlich keine IBOutlets in NSVIew für topConstraint, bottomConstraint, leadingConstraint, trailingConstraint, leftConstraint, rightConstraint, widhtConstraint, heightConstraint?

    mir ist schon klar dass es jeweils mehrere davon geben kann, aber im normalfall verwendet man ja jeweils nur einen. und jedesmal eine subclass eines GUI-elements zu erstellen oder im viewcontroller für jedes GUI-element solche Outlets anzulegen finde ich doch etwas blöd. Ich hab mir das also selbst über eine NSView-Category hinzugebaut, wunder mich aber schon ob das nicht jeder öfters benötigt (oder bin ich der einzige der die größe/position von GUI-elementen programmatisch verändert)?
  • gritsch schrieb:

    warum gibts eigentlich keine IBOutlets in NSVIew für topConstraint, bottomConstraint, leadingConstraint, trailingConstraint, leftConstraint, rightConstraint, widhtConstraint, heightConstraint?
    Generell wäre das eine ziemlich unzuverlässige Sache, da nicht jeder View für jede Größe ein Constraint besitzen muss. Beispielsweise hast du in der Regel keins für die Breite, wenn du Leading und Trailing setzt oder die intrisische Größe verwendest. Auto-Layout erzeugt zudem interne Constraints, von denen man tunlichst die Pfoten lassen sollte.

    Wenn ein View sein Layout nicht selber verändert, sollte er außerdem auch seine Constraints nicht kennen. Ich finde Outlets im Viewcontroller anzulegen, reicht vollkommen aus und ist auch kein umständlicher Aufwand.
    „Meine Komplikation hatte eine Komplikation.“
  • So oft brauche ich das gar nicht, muss ich sagen. Wenn dann mache ich die Outlets oft nicht in den View (wenn ich keine Subklasse verwende, was ja oft der Fall ist) sondern in den Controller. Da habe ich eh' eine eigene Klasse. Der View kann ja meistens gar nicht selbst entscheiden, ob er seine Größe ändern muss oder nicht. Der Code ist also eh' im Controller.

    ciao

    gandhi