2013-11-12 2 views
0

Я создал UIScrollView, который содержит динамическое число UIViews. Внутри каждого UIView будет динамическое число UItextField s.Обновления выбора UIPickerView NSArray из UITextFields

Сам вид выглядит так

enter image description here

Это белые коробки являются UIViews и черные ящики являются UITextfield s.

У меня есть метод, который помещает эти UITextfield s в массив массивов. Итак, у вас есть массив UIView s, тогда в каждом массиве есть массив из UITextfield s.

этот код выглядит следующим образом.

for(int i = 0; i< viewcount; i++) { 
     color = color + 20; 
     NSLog(@"%f", color); 
     CGFloat y = i * 91; 

     UIScrollView *axisContainerScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0, y,self.view.frame.size.width, 90.0)]; 
     axisContainerScrollView.contentSize = CGSizeMake(600.0, 90.0); 
     axisContainerScrollView.backgroundColor = [UIColor whiteColor]; 
     [htmlContainerScrollView addSubview:axisContainerScrollView]; 

//  UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, y,self.view.frame.size.width, 90.0)]; 
     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 640.0, 90.0)]; 
     view.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:(1.0/i)];; 
     [axisContainerScrollView addSubview:view]; 

     int cutCount = [cutsString integerValue]; 
     int positions = (view.frame.size.width/cutCount); 

     for (int i = 0; i < cutCount; i++) { 
      //first one 
      UITextField *cutField = [[UITextField alloc] initWithFrame:CGRectMake(((positions*i)-(20/2)+(positions/2)), 25, 20, 20)]; 
      cutField.textColor = [UIColor colorWithRed:0/256.0 green:84/256.0 blue:129/256.0 alpha:1.0]; 
      cutField.font = [UIFont fontWithName:@"Helvetica-Bold" size:25]; 
      cutField.backgroundColor=[UIColor whiteColor]; 
      [view addSubview:cutField]; 

      [columnArrayOfTextFields addObject:cutField]; // array of textfields 
     } 
     [rowArrayOfTextFields addObject:columnArrayOfTextFields]; // array of arrays 

    } 

То, что я хотел бы помочь с это как то шаг через каждый UITextField и введите значение из UIPickerView. так как вы выбираете значения, вы заполняете каждый UITextField слева направо и пройдите вниз через каждые UItextField.

У меня есть жест распознаватель для UIPickerView где Кальес метод как этого

UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pickerTap:)]; 

любой помощи с методом pickerTap был бы весьма признателен, поскольку я просто не знаю, как это сделать ... Я думаю, что NSArray NSArrays - хорошее начало, но я просто не уверен, как продвигаться отсюда.

+0

UICollectionView может быть лучшим способом справиться с этим, поскольку он настроен на управление строками/столбцами/сетками объектов. –

+0

В порядке я буду изучать эти танки. – HurkNburkS

ответ

1

Если я правильно понимаю, вы можете использовать tag свойство UIView

Что я обычно делаю (так как я пришел к этой проблеме сам) является:

A. У вас есть известное количество элементов, и вы назначаете теги от 1 до n

B. Если вы можете добавить/удалить/или просто иметь динамическое число элементов, умножать простые числа с 1, 2, 3 и т.д.

  • Например, на линии 1 использовать простое число 3. Так что ваш текст поля будет иметь метки, такие как 3, 6, 9, 12, 15 и 18
  • Тогда для второй линии вы будете использовать 7. Таким образом, вы будете иметь свое текстовое поле маркированного 7, 14, 21, 28, 35 и 43
  • Для линии 3 используется 11
  • Для линии 4 вы используете 13 и так далее ...

Существует много способов сделать это, это только на моей голове или на самом деле то, что я использую, если я не понял правильно, что вы хотите, не стесняйтесь, дайте мне знать.

+0

в порядке это определенно имеет смысл. Я пойду поиграть с ним. Я искал свойство тега на UITextField, потому что использовал тег UIButton, но я Havent видел версию UITextField. Теперь он снова проверяет его. – HurkNburkS

+0

Я сделал это, но я не уверен, как получить значение, выбранное в UIPickerView, в UITextField. – HurkNburkS

+0

вы можете объяснить немного больше? Что вы пытаетесь сделать сейчас? –

Смежные вопросы