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

如何用代码的方式使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的方法呢?


整明白了,使用loadView改变self.view的类型为UIControl,编译器并不会知道,所以直接用UIControl的方法,编译器会报错。它只有在运行时才知道能实现UIControl的方法,刚用respondsToSelector验证了下果然如此。

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

【热门文章】
【热门文章】