我在 ViewController 中添加了一个视图,使用[self.view addSubview:newView]
. newView 是一个 UIView 类型的对象。在 newView 中,我添加了一些使用[self addSubview:polyg];
.
Polygs
也继承自UIView
. 但他们永远不会被吸引。drawRect:(CGRect)rect
永远不会被调用。
我是 iOS 新手,不知道自己做错了什么。
self.view
这可能与我在向 newView 添加视图时没有使用的事实有关。我什至不能self.view
在 newView 中使用。
我怎样才能使这项工作?
编辑:当我创建这些多边形对象时,我正在使用 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 永远不会被调用。