Использовать объект ScrollView в другом классе - PullRequest
0 голосов
/ 23 января 2012

Пожалуйста, помогите мне!

Существует два класса, FirstViewCtrl и SecondViewCtrl.В FirstViewCtrl у меня есть UIView, и я поместил UIScrollVIew внутри этого ``.И в SecondViewCtrl у меня есть UIView (состоит из 3 TextField).

Теперь я связал это UIView из SecondViewCtrl с UIScrollView в FirstViewCtrl [_bgScrollView addSubview:SecondViewCtrl.view];

Все работает нормальнодо сих пор.Здесь я хочу выполнить небольшую задачу, когда пользователь нажимает на TextField, выскакивает раскладка клавиатуры, и экран Background должен двигаться вверх (я имею в виду, что Keyboard не должна скрывать TextField).Я достиг этого раньше, но здесь это выглядит немного иначе для меня.Поскольку UIScrollView находится в FirstViewCtrl, а TextField находится во SecondViewCtrl (который является UIView).Я могу получить textFieldShouldReturn в SecondViewCtrl.Как переместить экран BG здесь ??

Проще говоря, _bgScrollView находится в FirstViewCtrl, но я обрабатываю TextField в SecondViewCtrl.Как я могу переместить фон, когда пользователь выбирает TextField?Я действительно запутался здесь, пожалуйста, помогите мне !!!!

Ответы [ 2 ]

0 голосов
/ 23 января 2012

Общая процедура предотвращения наложения клавиатуры на текстовое поле описана в Руководстве по программированию текста, Интернета и редактирования для iOS , с примером кода.Вам необходимо подписаться на уведомления о показе / скрытии клавиатуры и настроить свойство contentInset вашего представления прокрутки.

Если вы не хотите, чтобы ваш контроллер второго представления знал о вашем первом контроллере представления, вы можете простоПоднимитесь по иерархии представлений, чтобы найти представление с прокруткой.Например:

- (UIScrollView *)scrollViewContainingView:(UIView *)view {
    for ( ; view; view = view.superview) {
        if ([view isKindOfClass:[UIScrollView class]])
            return (UIScrollView *)view;
    }
    return nil;
}
0 голосов
/ 23 января 2012

Вы можете получить доступ к _bgScrollView (UIScrollView) в SecondViewController, просто создав _bgScrollView как property вашего FirstViewController.

in FirstViewController.h

UIScrollView *_bgScrollView;

@property (nonatomic, retain) UIScrollView *_bgScrollView;

in FirstViewController.m 

@synthesize *_bgScrollView;

теперь вы можете получить доступ к _bgScrollView в SecondViewController, используя _bgScrollView каксвойство FirstViewController.Также для прокрутки _bgScrollView вы можете использовать эту функцию -

- (void)scrollViewToCenterOfScreen:(UIView *)theView {  
    CGFloat viewCenterY = theView.center.y;  
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];  

    CGFloat availableHeight = applicationFrame.size.height - 200;     

    CGFloat y = viewCenterY - availableHeight / 2.0;  
    if (y < 0) {  
        y = 0;  
    }  
    [scrollView setContentOffset:CGPointMake(0, y) animated:YES];  

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...