我使用 [self.view addSubview:newView]
在 ViewController 中添加了一个 View 。 newView是一个UIView类型的对象。
在 newView 中,我使用 [self addSubview:polyg];
添加了一些 View 。
Polygs
也继承自 UIView
。但他们永远不会被吸引。 drawRect:(CGRect)rect
永远不会被调用。
我是 iOS 新手,不知道我做错了什么。
这可能与我在向newView添加 View 时没有使用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,所以我很确定 subview 已添加到 newView 中。
我尝试将其添加到相同的 touchX:Y 方法中:
for (UIView* subview in self.subviews) {
[subview setNeedsDisplay];
}
但是 subview 的drawRect永远不会被调用。
最佳答案
最有可能的可能性是 newView 完全超出屏幕或大小为 (0,0)。在添加 ployg subview 之前,使用调试器打印出 newView 的框架。
关于ios - 我可以在 subview 中添加 subview 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17266013/