首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用视图IOS中的用户交互

禁用视图IOS中的用户交互
EN

Stack Overflow用户
提问于 2012-08-31 18:38:29
回答 4查看 49.1K关注 0票数 28

我正在使用以下代码禁用和启用视图...

代码语言:javascript
复制
[self.view setUserInteractionEnabled:NO];
[self.view setUserInteractionEnabled:YES];

如果我这样做,所有的子视图也会受到影响……全部禁用,如何仅针对特定视图执行操作?有可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-31 18:45:11

完全相同,假设您的另一个视图是成员,或者您可以遍历self.view的子视图数组,如下所示:

MyViewController.h

代码语言:javascript
复制
UIView* otherView;

MyViewController.m

代码语言:javascript
复制
otherView.userInteractionEnabled = NO; // or YES, as you desire.

或者:

代码语言:javascript
复制
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.
}
票数 34
EN

Stack Overflow用户

发布于 2015-12-03 20:12:07

在swift UIView中,确实有userInteractionEnabled属性来使其响应或不响应。要使full View无响应,请使用代码:

代码语言:javascript
复制
// make screen unresponsive
self.view.userInteractionEnabled = false
//make navigation bar unresponsive
self.navigationController!.view.userInteractionEnabled = false

// make screen responsive
self.view.userInteractionEnabled = true
//make navigation bar responsive
self.navigationController!.view.userInteractionEnabled = true
票数 13
EN

Stack Overflow用户

发布于 2012-08-31 18:44:41

代码语言:javascript
复制
for (UIView* view in self.view.subviews) {

    if ([view isKindOfClass:[/*"which ever class u want eg UITextField "*/ class]])

        [view setUserInteractionEnabled:NO];

}

希望能有所帮助。快乐编码:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12213663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档