Como criar mais de 40-50 textfields e etiquetas em um único ponto de vista?

votos
0

Como faço para criar mais de 40-50 textfields e etiquetas em uma única exibição e quando o campo de texto selecionado o teclado não deve ocultar o campo de texto?

Publicado 19/05/2009 em 14:09
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Você provavelmente quer criá-los por meio de programação - usando o construtor de interface para fazer 40-50 textfields seria muito demorado.

Quanto ao teclado, você pode fazer a sua UIView principal rolagem, então sempre que o teclado é exibido, verifique o que textfield está selecionada e deslocá-lo para a metade superior da tela. (Se o seu aplicativo é rotativo, certifique-se "a metade superior da tela" muda definições dependendo da sua orientação.)

Um código de exemplo para essa idéia:

// 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];
}

Neste código, definimos primeiro algumas variáveis ​​que determinam o comportamento dos campos de texto (sua posição, aparência e número), em seguida, criar o UIScrollView mestre. Uma vez feito isso, criamos um grupo de UITextFields com as dimensões especificadas antes, simultaneamente, adicionando-os como subvisualizações do scrollview e segurando-os em uma matriz para referência posterior (se necessário).

Mais tarde, você vai querer substituir o becomeFirstResponder:método para seus UITextFields (talvez subclasse UITextField aqui) para que sempre que um campo de texto torna-se a primeira resposta e mostra o teclado, ele chama setContentOffset:animated:na scrollview para exibir-se.

Respondeu 19/05/2009 em 14:12
fonte usuário

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