我使用[self.view addSubview:newView]
在ViewController中添加了一个视图。 newView是一个UIView类型的对象。
在newView中我添加了使用[self addSubview:polyg];
添加了一些视图。
Polygs
也继承自UIView
。但他们永远不会被吸引。永远不会调用drawRect:(CGRect)rect
。
我是iOS新手,不知道我做错了什么。
这可能与我在向newView添加视图时没有使用self.view
这一事实有关。我甚至无法在newView中使用self.view
。
我该如何做到这一点?
编辑:
当我创建这些polyg对象时,我正在使用initWithFrame并发送newView的框架,如下所示:[[Polyg alloc] initWithFrame:self.frame];
这可能是原因吗? Polyg将是一个可移动且可调整大小的多边形,所以我认为每个都应该可以在整个屏幕上绘制。
编辑: 我在newView中创建了一个名为touchX:Y的方法,只要我在屏幕上触摸手指,就会从viewController调用它。在里面我写了这个:NSLog(@“subview =%i”,self.subviews.count);.每当我触摸屏幕时,我都会在控制台上看到:subview = 89所以我很确定子视图已添加到newView。
我尝试将其添加到相同的touchX:Y方法:
for (UIView* subview in self.subviews) {
[subview setNeedsDisplay];
}
但子视图'drawRect永远不会被调用。
答案 0 :(得分:1)
最有可能的是,newView要么完全不在屏幕上,要么大小为(0,0)。在添加ployg子视图之前,使用调试器打印出newView的框架。