【发布时间】:2013-12-31 13:58:36
【问题描述】:
使用下面的代码在我的 UIView 中插入一个子视图,我得到一个黑屏。谁能告诉我为什么?
CJGBoardLabels* whiteLabels = [[CJGBoardLabels alloc] initWithFrame:self.frame
andOrientation:@"white"
andOrigin:self.boardOrigin
andSquareSize:_squareSize
andHorizontalOffset:_horizontalOffset
andVerticalOffset:_verticalOffset];
[self insertSubview:whiteLabels aboveSubview:self];
我也得到了与以下行相同的结果:
[self insertSubview:whiteLabels belowSubview:self];
【问题讨论】:
-
检查
[self addSubView:whiteLabels];假设 self 是一个视图。 -
在创建 whiteLabels 之前放置一个断点并记录
self.frame。 self 是什么类? -
嗯,我猜这可能是错误的称呼。
self.frame是CGRect,因为我从父视图的drawRect方法调用 addSubview/insertSubview。这个地方叫错了吗? -
您不应该在
drawRect:中添加子视图,不。此外,self不能是self的子视图,因此尝试基于该逻辑进行排序是有缺陷的。 -
好的,那么如果我想在父视图的drawRect完成后添加一个子视图,那么合适的地方在哪里呢?
标签: ios user-interface uiview subview