Frage

Ich versuche, eine UitextView in einer Tabellenzelle am Ende einer Tabellenansicht zu implementieren.

Ich habe die Vorschläge hier ausprobiert Erstellen eines UsitableView -Scrolls Wenn das Textfeld ausgewählt ist, und auch andere Lösungen, aber sie sind ein bisschen anders, weil ich der aktuellen Ansicht künstlich zusätzliche Höhe hinzufügen muss, um Platz für die Tastatur zu schaffen.

Folgendes habe ich der vorherigen Lösung hinzugefügt, um sie in meine App zu portieren.

-(void) keyboardWillShow:(NSNotification *)note {
      CGRect frame = self.view.frame;
      frame.size.height += keyboardHeight;
      frame.origin.y -= keyboardHeight;
        self.view.frame = frame;
}

-(void) keyboardWillHide:(NSNotification *)note
{
        CGRect frame = self.view.frame;
        frame.size.height -= keyboardHeight;
    frame.origin.y += keyboardHeight;

}

Auf diese Weise wird die Höhe der Ansicht korrekt hinzugefügt und in die Zelle scrollen. Nach dem Wiederherstellen der Höhe der ursprünglichen Ansicht wird das Scrollen über die aktuelle sichtbare Ansicht unmöglich, obwohl es gültige Inhalte außerhalb der Grenzen gibt (ich sehe die Textansicht vor der Textansicht vor Die Bildlaufleiste springt zurück).
Wenn ich versuche, den Rahmen oder die Grenzen von TableView (nicht die Ansicht) in der Tastatur -Mitarbeiternshow zu speichern und sie in Tastaturen wiederherzustellen, wird das Scrollen wiederhergestellt, aber die Ansicht wird in zwei Hälften geschnitten.

Gibt es außerdem Abhilfemaßnahmen, abgesehen davon, dass die zusätzliche Höhe bis zum Ende der Ansicht hart kodiert?

War es hilfreich?

Lösung

Ich konnte mein Problem mit dem gesperrten Scrollen lösen, indem ich den Code entfernen konnte, der den Ursprung der Ansicht bearbeitet. Darüber hinaus habe ich das Scrollen in die untere Zelle implementiert, indem ich die ContentSize -Eigenschaft von TableView in meinen Berechnungen verwendete.

-(void) keyboardWillShow:(NSNotification *)note
{

  if(!isKeyboardShowing)
    {
    isKeyboardShowing = YES;
    CGRect keyboardBounds;
    [[note.userInfo valueForKey:UIKeyboardBoundsUserInfoKey] getValue: &keyboardBounds];
    CGFloat keyboardHeight = keyboardBounds.size.height;

            CGRect frame = self.view.frame;
            frame.size.height += keyboardHeight;
            self.view.frame = frame;

    CGPoint scrollPoint = frame.origin;
    scrollPoint.y += _tableView.contentSize.height - keyboardHeight;
    [_tableView setContentOffset:scrollPoint animated:YES];
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top