Доступ UIView в UIScrollView правильно

У меня есть этот код:

int i=0;
for (UIView *view in [self subviews]) {
   //NSLog(@"index %d - i %d",index,i);
   if (i==index) {
      NSLog(@"index %d - i %d",index,i);
      [view setAlpha:0.3];
      [view setUserInteractionEnabled:NO];
   }
   i++;
}

"индекс" - переменная, используемая, чтобы выбрать представление, чтобы изменить.

Проблема состоит в том, что ничего не происходит, вместо этого если я управляю этим кодом:

for (UIView *view in [self subviews]) {
    [view setAlpha:0.3];
    [view setUserInteractionEnabled:NO];
}

каждое представление будет, изменяют, очевидно, но мне нужен первый код:)

идеи?

1
nl ja de
Y u никакой признак набора?
добавлено автор amar, источник
попытайтесь установить признак в представление и проверьте, что с ИНДЕКСОМ как то, если (view.tag == индекс) {[рассматривают setAlpha:0.3]; [рассмотрите setUserInteractionEnabled:NO];} даже думал, что это не хороший способ сделать это..
добавлено автор Bala, источник
Я haven' t устанавливают любой признак, действительно устанавливая признак и используя его, чтобы проверить, работы очень хорошо, спасибо:)
добавлено автор Lucabro, источник
Я предлагаю, чтобы вы использовали признаки, который однозначно определяет каждое представление в scrolview вместо этого индексы так, чтобы можно было найти точку зрения в коде с одним рядом [scrolview viewWithTag:tag] и затем выполнить любые действия на нем. Стоимость признака может на самом деле быть той же самой стоимостью как индекс.
добавлено автор mike-dutka, источник

2 ответы

Установите признак всех подвзглядов в вашей точке зрения свитка и затем пройдите, признак отобранного представления о переменной индекса надеются, что это - целое число.

 for(int i = 1; i <=4; i++){

  UIView *myView =  [UIView......];//set your view
  myView.tag  = i;
  [your_scrollView addSubview:myView];
}

тогда можно сделать как следующее.

for (UIView *view in [your_scrollView subviews])
{
  if (view.tag == index) 
  {
  [view setAlpha:0.3];
  [view setUserInteractionEnabled:NO];
  }
}

or there is an easy way to get the view [your_scrollView viewWithTag:index]

1
добавлено
Большой это работает! Спасибо! ответ проверяется! Но я don' t понимают, почему, в моем первом коде NSLog пишут правильные несколько стоимостей, но представление остается тем же самым...
добавлено автор Lucabro, источник

Попробуйте этот код:-

for (UIView *view in [scrollView subviews]) {
        [view setAlpha:0.3];
        [view setUserInteractionEnabled:NO];
    }

Надеюсь, что это работает

0
добавлено