我只是从界面构建器添加了新的uiscrollview,在viewDidLoad方法中,我得到了它的子视图并将其打印在控制台上。它显示了两个图像视图。我无法弄清楚它们来自哪里。
NSArray * views = [friendScrollView subviews];
NSLog(@"views are %@", [views description]);
在控制台中:
views are (
"<UIImageView: 0x1b82f0; frame = (805 203; 7 7); alpha = 0; opaque = NO; autoresize = TM; userInteractionEnabled = NO; layer = <CALayer: 0x1b6cb0>>",
"<UIImageView: 0x17b1d0; frame = (805 203; 7 7); alpha = 0; opaque = NO; autoresize = LM; userInteractionEnabled = NO; layer = <CALayer: 0x1bdbd0>>"
)
当我删除它们时,它们甚至不会从滚动视图中删除。 任何想法?
答案 0 :(得分:3)
这些图像视图是水平和垂直滚动指示器图像。默认情况下,当您创建UIScrollView
实例时,它们会出现。
适用于UIScrollView
的iOS HIG指南指定了
当滚动视图首次出现时 - 或者当用户与其交互时 - 垂直或水平滚动指示器会短暂闪烁以向用户显示他们可以显示的内容更多。
这是建议遵循的最佳做法,以确保良好的用户体验。因此不应该删除它们。如果根本不需要显示滚动指示符,则滚动视图提供properties to achieve this programmatically。将所需属性设置为NO
答案 1 :(得分:2)
它们是垂直和水平滚动指示器,它们不应被删除
UIKIT_CLASS_AVAILABLE(2_0) @interface UIScrollView : UIView <NSCoding> {
...
UIImageView* _verticalScrollIndicator;
UIImageView* _horizontalScrollIndicator;
答案 2 :(得分:0)
您是否尝试过以下操作:
for (UIView *v in friendScrollView.subviews)
{
[v removeFromSuperview];
}
如果您拥有除imageview之外的friendScrollView子视图,也可以使用isKindOfClass:[UIImageView class]
仅从scrollview中删除图像视图。