Autolayout, views werden unsichtbar nach "Update Frames"

  • Autolayout, views werden unsichtbar nach "Update Frames"

    Hallo,
    ich baue gerade an einer App und irgendwie hab ich da ein kleines Problem. Ich habe auf einem ViewController ein TableView und unten ein 2. View der einen Button und ein TextView beinhaltet. Jetzt habe ich schon vorher das Problem dass der TableView und der normale View nachdem ich die Frames upgedatet habe verschwunden sind. Nachdem sie es jetzt nichtmehr tun hab ich das gleiche Problem mit dem TextView. Ich füge ihm Constraints zu und update dann die frames und schon verschwindet das teil scheinbar hinter dem view.
    Hab mal zur Veranschaulichung n paar Bilder gemacht.übersicht.pngsichbar.pngunsichtbar.png
    Auch im Simulator wird es nicht dargestellt.

    Mein Ziel ist es sowas wie einen Chat zu bauen wo unten ständig das textfeld zur Eingabe mit sendenbutton vorhanden ist und der ganze Balken dann wenn das Keyboard erscheint mit nach oben rutscht. Mit den vorgefertigten Dingern aus dem Internet kann ich nichts anfangen da ich sie entweder nicht in meine app eingebaut kriege oder einfach nicht verstehe. Außerdem mach ich es lieber selber.
    Also wenn dazu noch jemand n gutes Tutorial hat, immer her damit. Aber bitte in Swift, obj-c verstehe und will ich auch nicht verstehen :D
  • Das ist ja ein Interface Editor Problem und hat mit Swift und Objective-C erst mal nichts zu tun. Wenn nach „Update Frames“ Views verschwinden ist das ein Zeichen dafür, dass du nicht genügend Einschränkungen (Constraints) für den View gesetzt hast. Nach den Screenshots sieht mir das nach dem Fehlen von Einschränkungen in vertikaler Richtung aus, so dass der TextView auf die Höhe 0 zusammenfällt.
  • Das war scheinbar das Problem, Wie soll man da bloß alleine drauf kommen :D
    Hab jetzt die höhe festgesetzt und die Constraints oben und unten weggenommen. Wenn ich sie dazu packe meckert Xcode rum.

    Dass das nichts mit Swift und Objective c zutun hat war mir schon klar, ich dachte nur hier hat jemand ne gute Lösung dafür parat.
    Also heute nichts geschafft aber was gelernt :)
  • Waffeln schrieb:

    Das war scheinbar das Problem, Wie soll man da bloß alleine drauf kommen
    Zum einen Erfahrungen sammeln und zum anderen erkennst du am Orange farbenen Rahmen (dein Screenshot sichbar.png), dass etwas mit dem Autolayout-Dingens nicht stimmt. Zusätzlich erscheint ein roter Pfeil links im Objektbaum. Wenn du da drauf klickst, bekommst du weitere Hinweise.
    Constraints Fehler.png
  • Habe jetzt auch das letzte Problem sehr leicht hingekriegt, nachdem ich gestern fast dran verzweifelt bin :D

    Quellcode

    1. NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil)
    2. func keyboardWillShow(sender: NSNotification) {
    3. if let userInfo = sender.userInfo {
    4. if let keyboardHeight = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue().size.height {
    5. textViewBottomConstraint.constant = keyboardHeight
    6. UIView.animateWithDuration(0.25, animations: { () -> Void in
    7. self.view.layoutIfNeeded()
    8. })
    9. }
    10. }
    11. }
    Alles anzeigen