2016-05-02 5 views
0

Ich möchte eine dynamische Ansicht mit Kommentaren und das Kommentarformular mit AutoLayout erstellen, ändern Sie die Höhe der Textansicht dynamisch abhängig von Kommentarlänge. Wie in Instagram: enter image description hereWie erstellt man ein Layout mit zwei vertikal platzierten Ansichten, die die Supervision des Eintrags und die dynamische Höhe füllen?

Es gibt eine TableView und eine TextView. Ich habe versucht, die folgenden Bedingungen enter image description here

Aber es gibt Fehler hinzuzufügen: enter image description here

Wenn ich statische Höhen angeben es funktioniert, aber wenn ich versuche,> = < hinzuzufügen = es zeigt immer einen Fehler.

+0

Ihr ist ein Dritte-Klasse, die Sie können try.I sie verwendet haben und es funktioniert perfekt, aber es erfordert diese Funktionalität programmatisch tun –

Antwort

1

Ungleichheiten vermeiden. Stellen Sie den unteren Teil der Superansicht auf den unteren Rand der letzten Ansicht ein (Sie müssen möglicherweise die vertikale Komprimierungswiderstandspriorität aller Unteransichten über der der übergeordneten Ebene erhöhen ... sagen Sie 1000, während der übergeordnete Wert bei 750 liegt). Oder die vorgeschlagene Taktik, setze die statische Höhe auf einen beliebigen Wert. Machen Sie einen Verweis auf die Einschränkung für den entsprechenden View-Controller. Berechnen Sie die richtige Höhe programmgesteuert im View-Controller (addieren Sie einfach alle Subview-Höhen). Setzen Sie schließlich die Constraint-Konstante auf den berechneten Wert.

0

wenn Sie Höhe Ansicht ändern möchten, wenn Tastatur dies erscheinen versuchen:

- (void)viewDidLoad { 
[super viewDidLoad]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardWillShow:) 
              name:UIKeyboardWillShowNotification 
              object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(keyboardWillHide:) 
              name:UIKeyboardWillHideNotification 
              object:nil]; 
} 
- (void)keyboardWillShow:(NSNotification *)note { 
    NSDictionary *userInfo = note.userInfo; 
    NSTimeInterval duration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; 

    CGRect keyboardFrameEnd = [userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    keyboardFrameEnd = [self.view convertRect:keyboardFrameEnd fromView:nil]; 

    [UIView animateWithDuration:duration animations:^{ 
     self.bottomViewConstraint.constant = keyboardFrameEnd.size.height + 10.0; 
     [self.view setNeedsUpdateConstraints]; 
     [self.view layoutIfNeeded]; 
    }]; 

} 

- (void)keyboardWillHide:(NSNotification *)note { 
    NSDictionary *userInfo = note.userInfo; 
    NSTimeInterval duration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; 

    CGRect keyboardFrameEnd = [userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    keyboardFrameEnd = [self.view convertRect:keyboardFrameEnd fromView:nil]; 


    [UIView animateWithDuration:duration animations:^{ 
     self.bottomViewConstraint.constant = 10.0; 
     [self.view setNeedsUpdateConstraints]; 
     [self.view layoutIfNeeded]; 
    }]; 
} 
+0

Ich möchte die Höhe der Textansicht abhängig von der Kommentarlänge dynamisch ändern. –

Verwandte Themen