Как создать более 40-50 текстовых полей и надписей в одном представлении? - PullRequest
0 голосов
/ 19 мая 2009

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

1 Ответ

1 голос
/ 19 мая 2009

Возможно, вы захотите создать их программно - использование Интерфейсного Разработчика для создания 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];
}

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

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

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