And*_*ryn 13 iphone objective-c uiscrollview
我有一个方法,将一些子视图(图像/按钮)添加到我的ScrollView.
事实是,从ScrollView外部,用户可以点击一个按钮来改变ScrollView的内容.
有没有像"重置"ScrollView更好的方法:
for (UIView * view in myScrollView.subViews) {
[view removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)
请注意,此解决方案会删除条形以指示ScrollView上的位置
lxt*_*lxt 19
调用setNeedsDisplay只是重绘滚动视图,而不是实际删除其中的内容.
正如您所发现的,调用removeFromSuperview所有滚动视图子视图将导致您的滚动条有时也会被删除(不是很好).
这有几种方法:第一种方法是维护一个包含您自己添加到滚动视图中的所有视图的不同数组.然后,您可以改为遍历此数组.在我看来,这可能是最好的方法.
另一种略显苛刻的方法是在迭代它们时测试视图:
for (UIView *view in self.contentView.subviews)
{
if (![view isKindOfClass:[UIImageView class]])
[view removeFromSuperview];
}
Run Code Online (Sandbox Code Playgroud)
因为滚动条本身就是一个UIImageView子类,所以不会删除它们.但话说回来,如果您自己使用图像视图,它们也不会被删除,并且在将来的iOS版本中无法保证它们将保留图像视图.
使用我的第一种方法更好,只需保留一个阵列,并添加您添加的所有视图.
| 归档时间: |
|
| 查看次数: |
29852 次 |
| 最近记录: |