【发布时间】:2011-07-04 17:19:35
【问题描述】:
我需要从ScrollView 中删除图像subviews,并尝试从subviews 的array 中删除,但这是一个不可变的NSArray。
如何从subviews 的scrollviews array 中删除subview?
【问题讨论】:
标签: iphone cocoa-touch ios uikit uiscrollview
我需要从ScrollView 中删除图像subviews,并尝试从subviews 的array 中删除,但这是一个不可变的NSArray。
如何从subviews 的scrollviews array 中删除subview?
【问题讨论】:
标签: iphone cocoa-touch ios uikit uiscrollview
NSArray *viewsToRemove = [scrollView subviews];
for (UIView *v in viewsToRemove) [v removeFromSuperview];
【讨论】:
你可以这样做,
[[scrollView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
【讨论】:
这将删除 UIScrollView 的所有子视图,但它的滚动指示器: _scrollView.showsHorizontalScrollIndicator = _scrollView.showsVerticalScrollIndicator = NO; [_scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; _scrollView.showsHorizontalScrollIndicator = _scrollView.showsVerticalScrollIndicator = YES;
【讨论】:
[_scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 将删除所有 UIScrollView 子视图,包括其滚动指示器。在从滚动视图中删除所有子视图之前隐藏滚动指示器将确保滚动指示器不会从滚动视图中删除。
for (UIView *v in [scrollView subviews]) {
[v removeFromSuperview];
}
【讨论】:
在子视图上调用 -removeFromSuperview。
【讨论】:
斯威夫特
for subview in scrollView.subviews {
subview.removeFromSuperview()
}
【讨论】: