Q
从上海华
1
A
回答
3
这不是如何在循环工作。仅仅因为你指定了一个类型,并不意味着只有该类型的对象才会受到影响。 subviews
中的每个视图都会对removeFromSuperview
作出响应,因此无论它被投射为什么,它仍会被删除。
如果你只想删除Sprite
对象,那么你需要检查每个对象的类。
for (UIView *view in self.view.subviews)
{
if ([view isKindOfClass:[Sprite class]])
[view removeFromSuperview];
}
1
在这种情况下,子视图包含一切(精灵和其他对象)。你的枚举不仅返回精灵 - 它返回所有东西(但是松散地将它们转换成精灵)。在这种情况下,子视图的所有内容都会响应removeFromSuperview方法 - 因此所有内容都将被删除。
当您循环浏览子视图以确定是否需要删除时,您需要检查对象的类型。
0
您的代码在self.view的所有子视图上调用removeFromSuperview,因此它在写入时正常工作。这段代码运行的原因是因为Sprite可能是UIView的一个子类,所以编译器不会错误/警告你。你需要做的是更多这样的:
-(IBAction)clearAll:(id)sender{
for (UIView *aSubview in self.view.subviews){
if ([aSubview isSubclassOf
[sprite removeFromSuperview];
}
1
我们可以使用下面的语句它的父删除的UIView类型的所有实例。
[[self.view subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
它看起来更干净,更简单,而不是做一个循环。
相关问题
- 1. 从上海华
- 2. 从对准上海华
- 3. EXC_BAD_ACCESS时从上海华
- 4. Wikitude SDK从上海华
- 5. 从上海华卸下与gestureRecognizer
- 6. “上海华”不承认
- 7. 有来自上海华
- 8. 设置图层蒙版UIBezierPath上海华
- 9. 斯威夫特:在上海华与NSLayoutConstraint
- 10. 状态栏和上海华帧大小
- 11. 子视图将覆盖上海华
- 12. 块传递手势上海华
- 13. 从完成期间上海华删除删除它前面
- 14. 从上海华盈删除的UITextField不让它消失在屏幕上
- 15. iPhone SDK的子视图/上海华定位问题
- 16. 子视图比其在IOS上海华/目标C
- 17. 定制类迅速设置约束,上海华
- 18. NSLayoutConstraint限制CENTREX到上海华的另一侧
- 19. 制作XIB自由视图适合上海华在Main.storyboard
- 20. 自动调整子视图调整的上海华
- 21. 通行证触摸到上海华盈(UIButton的)
- 22. 斯威夫特加约束,以上海华编程
- 23. 为什么会子视图是由上海华
- 24. IPHONE:测试,看是否有看法是对上海华
- 25. 的Android - 华为设备上奇怪的晶圆厂海拔
- 26. [的UIBarButtonItem上海华]:无法识别的选择发送到实例
- 27. 转换coreplot图表点进入上海华盈的坐标空间
- 28. 边界重叠的观点:如何设置上海华不透明
- 29. 如何避免“消息上海华盈发送到释放对象” iphone
- 30. 无法从华廷