1

私はこのコードを持っています:

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

すべてのビューは明らかに変更されますが、最初のコードが必要です:)

アイデア?

4

2 に答える 2

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]

于 2013-01-09T14:39:31.153 に答える
0

このコードを試してください:-

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

それがうまくいくことを願っています

于 2013-01-09T14:30:32.470 に答える