【问题标题】:Why does an empty UIScrollView have two subviews?为什么一个空的 UIScrollView 有两个子视图?
【发布时间】:2012-07-25 13:32:26
【问题描述】:

我需要计算 UIScrollView 中内容的高度。

我将一个空的 UIScrollView 放到 XCode Storyboard 中,并使用以下代码给它一个自定义类:

- (id)initWithCoder:(NSCoder *)decoder
{
    self = [super initWithCoder:decoder];
    if (self) {

        int i;
        for (i = 0; i < [self.subviews count]; i++) {
            UIView *view =[self.subviews objectAtIndex:i];
            NSLog(@"sub view %@ x:%f, y:%f, w:%f, h:%f", [view class], view.frame.origin.x, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
        }

    }
    return self;
}

对于一个空的 UIScrollView,这是记录到控制台的内容:

sub view UIImageView x:233.000000, y:121.000000, w:7.000000, h:7.000000
sub view UIImageView x:233.000000, y:121.000000, w:7.000000, h:7.000000

这些图片是什么?他们抛弃了我的计算,因为他们总是低于我的内容。

【问题讨论】:

  • 我猜是滚动条,但我没有什么可以支持该声明的...另外,NSStringFromCGRect(view.frame); 下次打印框架时会为您节省一些输入
  • 我也认为它会是滚动条,但不知道如何证明这一点。感谢 NSStringFromCGRect :)
  • 好吧,如果你用for(UIView *subview in [view subviews]) { [subview removeFromSuperview]; } 删除所有子视图,你会注意到滚动条消失了。
  • 您应该跟踪要添加到滚动视图的内容并遍历它以进行计算,而不是通过滚动视图的子视图。你永远不知道 Apple 会在幕后做些什么奇怪的事情(比如添加滚动条)。
  • Anshu,如果我在代码中添加内容我完全同意,但是我正在使用通过 XCode 故事板添加内容的滚动视图,因此它具有现有内容。缺少标记/标记情节提要中的每个项目,我不知道如何区分我添加的项目和 Apple 添加的项目。

标签: objective-c xcode ios5 uiscrollview storyboard


【解决方案1】:

它们是滚动条(或滚动指示器,如果您愿意的话)。一个是水平的,另一个是垂直的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多