0

我在 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 永远不会被调用。

4

1 回答 1

1

最可能的可能性是 newView 要么完全不在屏幕上,要么大小为 (0,0)。在添加 ployg 子视图之前,使用调试器打印出 newView 的框架。

于 2013-06-23T23:54:32.597 回答