Как создать более 40-50 текстовые поля и метки в одном окне?

голоса
0

Как создать более 40-50 текстовые поля и метки в одном представлении и когда текстовое поле выбрано клавиатура не должна скрыть текстовое поле?

Задан 19/05/2009 в 14:09
источник пользователем
На других языках...                            


1 ответов

голоса
1

Вы, вероятно, хотите, чтобы создать их программно - с помощью Interface Builder, чтобы сделать 40-50 текстовые поля будет довольно много времени.

Что касается клавиатуры, то вы можете сделать ваш главный UIView прокручивать, то всякий раз, когда отображается клавиатура, проверьте, что текстовое поле выбрано и прокручивать его в верхней части экрана. (Если приложение с возможностью вращения, убедитесь, что «верхняя половина экрана» меняет определения в зависимости от ориентации).

Некоторые примеры кода для этой идеи:

// Determine some basic info
int numberOfTextfields = 50;
int textfieldHeight = 40;
int textfieldWidth = 200;

// Create the UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:
                                   CGRectMake(0, 0, 
                                              numberOfTextfields*textfieldHeight,
                                              textfieldWidth)];

// Create all the textfields
NSMutableArray *textfields = [NSMutableArray arrayWithCapacity:
                                   (NSUInteger)numberOfTextfields];
for(int i = 0; i < numberOfTextfields; i++) {
    UITextField *field = [[UITextField alloc] initWithFrame:
                                CGRectMake(0,
                                           i*textFieldHeight,
                                           textFieldHeight,
                                           textFieldWidth)];
    [scrollView addSubview:field];
    [textfields addObject:field];
}

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

Позже, вы хотите , чтобы переопределить becomeFirstResponder:метод для UITextFields (возможно подкласс UITextField здесь) , так что всякий раз , когда текстовое поле становится первым ответчиком и показывает клавиатуру, она вызывает setContentOffset:animated:в Scrollview для отображения себя.

Ответил 19/05/2009 в 14:12
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more