我已经使用[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。
最佳答案
最有可能的可能性是newView要么完全不在屏幕上,要么的大小为(0,0)。在添加ployg子视图之前,请使用调试器打印出newView的框架。
关于ios - 我可以在 subview 中添加 subview 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17266013/