以编程方式将 UIView 更改为 UIControl 的实例 [关闭]

Posted

技术标签:

【中文标题】以编程方式将 UIView 更改为 UIControl 的实例 [关闭]【英文标题】:Changing UIView To be instance from UIControl Programmatically [closed] 【发布时间】:2013-12-15 09:11:46 【问题描述】:

我有一个按钮可以将视图的类更改为UIControl

我已经输入了这行代码,但 Xcode 说这是一个错误

-(IBAction)button:(id)sender


    self.view.class = [UIControl class];

所以伙计们,我的问题是如何以编程方式将我的视图类更改为 UIControl

【问题讨论】:

【参考方案1】:

在目标 C 中,您不能分配对象的 class 属性,并且在 UIViewController 的实例中(我假设您的代码驻留在其中)您不能在 loadView 之外分配 view 属性而不会导致问题。

我认为您关于更改目标 C 类的一般性问题有点误导,您可能需要改写您的问题,以便可以建议一种方法来做您在可可中尝试做的事情。

实际上想做什么?您是否尝试更改屏幕上显示的内容以响应事件?您是否试图以某种方式更改视图控制器视图的行为?

这些事情通常是通过添加/更改/修改视图控制器的视图层次结构来完成的,方法是添加其他 UIView 实例,而不是修改现有的实例。

您可以轻松定义自己的类来继承 UIControl 的形式,但在上面的示例中开始使用它还需要做很多工作。

@interface CustomClass : UIControl
… 
@emd

我能否推荐以下来自 Apple 的关于 Objective C 和 iPhone 编程指南的介绍,这可能有助于了解如何在 Cocoa 中做事。

Learning Objective C - A Primer Programming with Objective C ios App Programming Guide

【讨论】:

我知道这是错误的,但是有什么简单的方法吗? 我试过了;是时候去帮助自己了。阅读这三个链接。【参考方案2】:

您不能在运行时更改类类型。 或者,您可以将控件设置为停止处理用户交互:

self.userInteractionEnabled = NO;

【讨论】:

你是怎么知道这就是问题要问的?

以上是关于以编程方式将 UIView 更改为 UIControl 的实例 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将视图的底部约束从安全区域更改为超级视图?

在sql server中以编程方式将内置帐户更改为本地系统

如何以编程方式将 UIViewController 的方向更改为横向?

如何以编程方式将背景颜色从 android.support.design 更改为 MaterialButton

UIView 背景颜色总是黑色

iOS:以编程方式将通知设置从“从不请求”更改为“拒绝”