次のコードを使用してビューを無効および有効にしています....
[self.view setUserInteractionEnabled:NO];
[self.view setUserInteractionEnabled:YES];
このようにすると、すべてのサブビューも影響を受けます...すべてが無効になっています。特定のビューのみを行うにはどうすればよいですか? 出来ますか?
次のコードを使用してビューを無効および有効にしています....
[self.view setUserInteractionEnabled:NO];
[self.view setUserInteractionEnabled:YES];
このようにすると、すべてのサブビューも影響を受けます...すべてが無効になっています。特定のビューのみを行うにはどうすればよいですか? 出来ますか?
他のビューがメンバーであるか、self.view
次のようにサブビューの配列を反復処理できると仮定すると、まったく同じです。
MyViewController.h
UIView* otherView;
MyViewController.m
otherView.userInteractionEnabled = NO; // or YES, as you desire.
また:
for (int i = 0; i < [[self.view subviews] count]; i++)
{
UIView* view = [[self.view subviews] objectAtIndex: i];
// now either check the tag property of view or however else you know
// it's the one you want, and then change the userInteractionEnabled property.
}
for (UIView* view in self.view.subviews) {
if ([view isKindOfClass:[/*"which ever class u want eg UITextField "*/ class]])
[view setUserInteractionEnabled:NO];
}
それが役に立てば幸い。幸せなコーディング:)
最良のオプションは、Tag
すべてのサブビューを反復するのではなく、ビューのプロパティを使用することです。インタラクションを無効にするサブビューにタグを設定し、以下のコードを使用してアクセスしてインタラクションを無効にするだけです。
// considering 5000 is tag value set for subView
// for which we want to disable user interaction
UIView *subView = [self.view viewWithTag:5000];
[subView setUserInteractionEnabled:NO];