Создать UITextViews в цикле - Цель C - PullRequest
0 голосов
/ 20 января 2012

Я работаю над приложением, в котором мне нужно просмотреть строку, чтобы заполнить некоторые UITextViews. В основном данные выглядят так:

Период времени: с 10 утра до 12 вечера Температура: 45F Ветер: 123 градуса @ 5 миль в час

Период времени: с 1 утра до 3 вечера Температура: 53F Ветер: 133 градуса @ 2 мили в час

Период времени: 4 утра до 5 вечера Температура: 50F Ветер: 110 градусов @ 7 миль в час

Проблема заключается в том, что не существует установленного количества периодов времени, доступных в любой момент времени. Так что мне просто нужно пройтись до конца. Есть ли способ создать текстовое представление внутри цикла?

    UITextView *textField1 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    UITextView *textField2 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    UITextView *textField3 = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
                   .....

Так мог бы я создать текстовые поля во время выполнения, пока он не достигнет конца строки, или мне нужно было бы создать максимальное число, которое может понадобиться, а затем просто использовать их при необходимости?

Спасибо, Эндрю Боос

1 Ответ

2 голосов
/ 20 января 2012

Конечно, вы можете.

Сначала разделите строку данных, используя [NSString componentsSeparatedByString] или [NSString componentsSeparatedByCharactersInSet], чтобы получить NSArray подстрок.

//assuming your data is separated by newlines
NSArray * substrings = [data_input componentsSeparatedByString:@"\n"];

//loop over the substrings creating textfields

    for (int i = 0; i < [substrings count]; i++)
    {
        CGRect frame = CGrectMake(0, i * 40, 100, 30);
        UITextField * tf = [[UITextField alloc] initWithFrame: frame];
        tf.text = [substrings objectAtIndex:i];

        //add as subview
        [view addSubview: tf];

        //if you are not using ARC release the textfield
    }

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

...