开发者社区> 问答> 正文

如何用代码的方式使ViewControl的View继承自UIControl

理论上使用loadView这个方法,在view为nil的时候,被调用,各位看看我代码有啥问题没?创建一个不带xib的工程 在APPDelegate.m里

 DemoViewController *dvc = [[DemoViewController alloc] initWithNibName:nil bundle:NULL];
 [self.window addSubview:dvc.view];

然后

@implementation DemoViewController

  • (void)loadView
    {

    UIControl *control = [[UIControl alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    [self setView:control];

    }

为什么之后用self.view仍然无法使用UIControl的方法呢?

展开
收起
a123456678 2016-07-20 15:36:01 1908 0
1 条回答
写回答
取消 提交回答
  • 整明白了,使用loadView改变self.view的类型为UIControl,编译器并不会知道,所以直接用UIControl的方法,编译器会报错。它只有在运行时才知道能实现UIControl的方法,刚用respondsToSelector验证了下果然如此。

    看来以后想用还是performSelector 或用 (XXX)强制类型转换下吧。

    2019-07-17 19:58:57
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载