以编程方式将 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 的实例 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式将 UIViewController 的方向更改为横向?