2012-01-20 2 views
0

Я работаю над приложением, в котором мне нужно сканировать строку, чтобы заполнить некоторые UITextViews. В основном эти данные, как это:Создать UITextViews в цикле - Objective C

Период времени: 10 am-12pm Температура: 45F Ветер: 123 градусов @ 5mph

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

Период времени: 4 am-5pm Температура: 50F Ветер: 110 градусов @ 7mph

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

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)]; 
        ..... 

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

Спасибо, Andrew Боос

ответ

2

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

Сначала разделите строку данных, используя либо [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 
    } 

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

+0

О, я сейчас чувствую себя глупо! ;) Я не думал использовать одно и то же текстовое поле и просто позволял ему выпускать! Благодаря! – Boos1993