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

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

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

-(IBAction)button:(id)sender
{

    self.view.class = [UIControl class];
}

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

【问题讨论】:

    标签: ios objective-c uiview uicontrol


    【解决方案1】:

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

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

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

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

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

    @interface CustomClass : UIControl
    … 
    @emd
    

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

    【讨论】:

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

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

    self.userInteractionEnabled = NO;
    

    【讨论】:

    • 你是怎么知道这就是问题要问的?
    猜你喜欢
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    相关资源
    最近更新 更多