2012-10-01 3 views
2

У меня есть UITableView, и ее UITableViewCell s могут независимо изменять свои размеры с помощью функции tableView:heightForRowAtIndexPath. Они хранят UIImage s разных размеров. Когда я нажимаю изображение, отображается клавиатура (скажем, для маркировки изображений).UITableView не может прокручивать вниз. Клавиатура показана и не показана одновременно

У меня есть, скажем, 3 ячейки (изображения) с общей высотой 1 пиксель меньше чем размер экрана все это хорошо. Отображается клавиатура, и я могу прокручивать ее, чтобы увидеть все ячейки (изображения).

Но когда я добавляю еще один, нажав общий размер, чтобы быть больше, чем экран, все это ломается. Кажется, что клавиатура показана (у меня есть дополнительная кнопка сверху, что делает ее на несколько пикселей выше исходной клавиатуры, что показано). Но я ничего не могу написать. Кнопка на клавиатуре - это отставка клавиатуры, и она не работает. Это как-то застряло.

Проекта можно скачать здесь: https://github.com/TokyoBirdy/cecilia/tree/master/Test (простите за грязный код)

+0

Посмотрите на эти два и посмотреть, если любой из них поможет вашей проблемы http://stackoverflow.com/questions/1842560/uitableview-wont-scroll-after-editing-view-frame-and- origin http://stackoverflow.com/questions/594181/uitableview-and-keyboard-scrolling-issue – Udrian

ответ

0

я был в состоянии решить мою проблему запертой прокрутки путем удаления кода, который редактирует начало представления. Кроме того, я выполнил прокрутку в нижней ячейке, используя свойство contentSize tableview в моих вычислениях.

-(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]; 
    } 
} 
Смежные вопросы