1

我只是从界面构建器中添加了新的 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>>"
)

当我删除它们时,它们甚至不会从滚动视图中删除。任何想法?

4

3 回答 3

3

这些图像视图是水平和垂直滚动指示器图像。UIScrollView当您创建实例时,它们默认存在。

UIScrollView用于指定的 iOS HIG 指南

当滚动视图首次出现时——或者当用户与之交互时——垂直或水平滚动指示器会短暂闪烁,以向用户显示他们可以显示更多内容。

这是建议遵循的最佳实践,以确保良好的用户体验。因此它们不应该被删除。如果根本不需要显示滚动指示器,则滚动视图提供属性以编程方式实现此目的。将所需的属性设置为NO

  • 显示水平滚动指示器
  • 显示垂直滚动指示器
于 2013-05-31T12:19:59.273 回答
2

它们是垂直和水平滚动指示器,不应该被删除

UIKIT_CLASS_AVAILABLE(2_0) @interface UIScrollView : UIView <NSCoding> {
    ...
    UIImageView* _verticalScrollIndicator;
    UIImageView* _horizontalScrollIndicator;
于 2013-05-31T12:20:01.247 回答
0

您是否尝试过以下方法:

for (UIView *v in friendScrollView.subviews) 
{   
   [v removeFromSuperview];
}

也用于isKindOfClass:[UIImageView class]仅从滚动视图中删除图像视图,以防您有除了图像视图之外的朋友滚动视图的子视图。

于 2013-05-31T12:21:07.687 回答