正确访问UIScrollView中的UIView

时间:2013-01-09 14:28:46

标签: iphone 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++;
}

“index”是用于选择要修改的视图的变量。

问题是没有任何反应,相反,如果我运行此代码:

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

每个视图都会明显修改,但我需要第一个代码:)

想法?

2 个答案:

答案 0 :(得分:1)

设置滚动视图中所有子视图的标记,然后将所选视图的标记传递给索引变量,希望它是一个整数。

 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];
  }
}

或者有一种简单的方法来获取视图 [your_scrollView viewWithTag:index]

答案 1 :(得分:0)

试试这段代码: -

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

希望它有效