ios - 我可以在 subview 中添加 subview 吗?

标签 ios objective-c uiview addsubview

我使用 [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/

相关文章:

ios - UITableViewCell Swift 中的动态 UICollectionViewCell

Objective-C:一个在不同时间指向不同类的指针

ios - Objective-C 中的 BOOL 循环

ios - 根据另一个配置数组对数组进行排序

ios - 设置图层边框的 alpha?

iphone - iOS Image View 性能提升建议

ios - Objective c 键盘不情愿地打开

ios - UIView KVO : Why don't changes to "center" cause KVO notifications for "frame"?

ios - 为什么 UIView 旋转时不居中?

ios - 动画 UISearchBar 框架的宽度