2012-05-16 3 views
-1

У меня есть изменяемый массив с именем setUpArray, и я хочу динамически генерировать UITextField. Число текстовых полей должно быть равно [setUpArray count]. Я пробовал следующий код. Он работает для генерации UITextFields, но проблема в том, что все они имеют одинаковые имена. поэтому я не могу самостоятельно установить свойство для отдельного текста.Создание UITextFields по количеству массивов

for(int i=0;i<[setUpArray count];i++) 
{ 
    UITextField *nameTextField=[[UITextField alloc]initWithFrame:CGRectMake(x, y, 60, 40)]; 
    nameTextField.delegate=self; 
    [view addSubview:nameTextField]; 
    y=y+50; 


} 

поэтому, пожалуйста, дайте мне решение по этой проблеме.

+0

то, что вы хотите на самом деле, чтобы произвести ЭТИКЕТКИ или TextFields ??? заголовок и описание вопроса совершенно разные – HarshIT

+0

Ваш вопрос дублируется http://stackoverflow.com/questions/1013325/how-to-create-nsmutablearray-of-uilabels – HarshIT

+0

Я не думаю. Проблема в этом вопросе другая: –

ответ

2

Возможно, вы захотите использовать теги для доступа к ним позже. Просто так:

for(int i=0;i<[setUpArray count];i++) { 
    UITextField *nameTextField=[[UITextField alloc]initWithFrame:CGRectMake(x, y, 60, 40)]; 
    nameTextField.delegate=self; 
    [view addSubview:label]; 
    y=y+50; 
    nameTextField.tag = 10 + i; 
} 

доступ к нему позже:

UITextField *theTextField = [view viewWithTag:12]; //or any other number 

Надеется, что это помогает

+0

Вам не кажется, что текстовое поле должно быть удалено после того, как его использовали ??????? – HarshIT

+0

@ Хэдли, что ты имеешь в виду? – Novarg

+0

Вы выделяете память на несколько раз (равную циклу) и все же не выпускаете ее. :( – HarshIT

0

Вы можете добавить: =

nameTextField.tag=i; 

for(int i=0;i<[setUpArray count];i++) 
{ 
    UITextField *nameTextField=[[UITextField alloc]initWithFrame:CGRectMake(x, y, 60, 40)]; 
    nameTextField.delegate=self; 
    nameTextField.tag = i; 
    [view addSubview:nameTextField]; 
    y=y+50; 
} 


and access it using :- 
if(nameTextField.tag==someIntValue) 
{ 
//perform this operation 
} 
Смежные вопросы