Вид перемещен на 3 пикселя - PullRequest
0 голосов
/ 07 мая 2010

В моем приложении я перемещаю табличное представление (чтобы сделать текстовые поля видимыми, когда появляется клавиатура).Представление выглядит следующим образом: альтернативный текст http://img34.imageshack.us/img34/5845/view2.png

Это код, который я использую для изменения размера представления и его перемещения вверх:

    static const NSUInteger navBarHeight = 44;
CGRect appFrame = [[UIScreen mainScreen] applicationFrame];
tableView.frame = CGRectMake(0, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard

NSIndexPath *indPath = [self getIndexPathForTextField:textField]; //get the field the view should scroll to

[tableView scrollToRowAtIndexPath:indPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];

Проблема заключается в том, что при перемещении представлениявверх он также перемещается на 3 пикселя в правильном направлении (трудно увидеть разницу на скриншоте, но он виден, когда анимация включена, и я измерил разницу с помощью инструмента PixelStick).Вот как это выглядит после перемещения: альтернативный текст http://img179.imageshack.us/img179/3310/iphonesimulator.png

Мой анализ показывает, что прокрутка таблицы не влияет на движение вправо.

Любые идеи о том, что не так вкод выше, который заставляет представление двигаться вправо?

1 Ответ

0 голосов
/ 07 мая 2010

возможно попробуйте изменить эту строку:

tableView.frame = CGRectMake(0, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard

до

tableView.frame = CGRectMake(tableView.frame.origin.x, navBarHeight, appFrame.size.width, appFrame.size.height-navBarHeight-216); //216 for the keyboard

на всякий случай, если origin.x таблицы не находится в 0?

...