iOS - 如何使我的视图不响应事件

Posted

技术标签:

【中文标题】iOS - 如何使我的视图不响应事件【英文标题】:iOS - How To Make my view so that it doesn't respond to events 【发布时间】:2013-12-15 10:06:12 【问题描述】:

我在 24 分钟前问过这个问题Changing UIView To be instance from UIControl Programmatically 但我他没有让我受益,所以我以另一种形式输入这个问题希望你能帮助我

我认为它的类来自 UIControl(所以它当然会接收事件) 我有一个按钮,我希望它可以将我的视图更改为普通的 UIView 实例(所以它当然会接收事件)

那怎么做

如果在此处将视图更改为 UIView,我想要代码

-(IBAction)pauseButton:(id)sender

   //here

我想要在这里将视图更改为 UIControl 的代码

-(IBAction)playButton:(id)sender



【问题讨论】:

【参考方案1】:

首先确保您有该视图或对象的IBOUTLET,并确保它已连接。

例如我们会说视图被调用 the_view

现在您可以取消选中该对象的界面构建器属性选项卡中的 UserInteractionEnabled 复选框或键入一行代码。如果您希望按钮引发允许停止触摸的事件,则第二个选项会更好。

对于第一个选项,我上传了一个视频,展示了基本步骤:

Click Here For tutorial

对于第二个选项,您可以使用以下代码:

the_view.userInteractionEnabled = NO;

或者,如果您想隐藏默认视图,只需使用:

self.view.userInteractionEnabled = NO;

或如上述答案所述:

[self setUserInteractionEnabled:NO]

【讨论】:

【参考方案2】:

你不能在objective-c 中改变一个对象的类。如果您只想让控件停止接收触摸,您可以使用:

 [self setUserInteractionEnabled:NO]

【讨论】:

谢谢你,这个答案帮助了我 我认为在界面生成器右侧的视图属性中有一个复选框。

以上是关于iOS - 如何使我的视图不响应事件的主要内容,如果未能解决你的问题,请参考以下文章

iOS 子视图响应父视图的点击事件

快速排序模板不起作用,并使我的程序无响应

IOS 触摸事件分发机制详解

为啥嵌套视图中的 UILabel 不接收触摸事件/如何测试响应者链?

iOS点击事件穿透以及扩大视图的响应区域

我的 UIView 有一个 UIButton 作为它的子视图之一,但不响应 Objective-c 中的事件