我记得当我阅读Apple文档时,它会提到当你调用像addSubview
这样的函数时,你会添加一层“绘画”,可以这么说,每次都是被叫,另一层被覆盖。
这应该是一个容易回答的问题,但我很难想到google的关键字,所以请原谅这么简单的问题。
如何清除自定义UIView
的“图层”?
我的情况,因为它可能是相关的:我有这些“用户卡”显示在屏幕上。它们使用一些用户图像进行初始化。卡片保持不变,但我在自定义UIView
(卡片UIView
)中调用方法,以便在我想要显示其他用户时重绘图像。问题是这个自定义UIView的一些元素是透明的,每次重绘这些图像都建立在透明度上(这是一个明显的问题)。
答案 0 :(得分:2)
在Core Graphics中,您绘制的是显示的内容。画家的类比仅指单个框架。因此,如果您使用drawRect
,则只是不缓存上一张图。
但我怀疑你在谈论一些你添加了子视图或子图层的UIKit。如果您只想清除所有内容,这将删除剩余的视图:
for (UIView *view in customView) {
[view removeFromSuperview];
}
for (CALayer *layer in customView.layer) {
[layer removeFromSuperlayer];
}
答案 1 :(得分:0)
customView.layer
时我就像瑞恩一样崩溃了在他的例子中。
当我将其切换到常规枚举时,它对我有用。这是一段代码:
for (int i = 0; i > yourView.layer.sublayers.count; i++) {
CALayer *layer = [self.yourView.layer.sublayers objectAtIndex:i];
[layer removeFromSuperlayer];
}