UIScrollView 滚动时跳跃

Posted

技术标签:

【中文标题】UIScrollView 滚动时跳跃【英文标题】:UIScrollView jumping when scrolled 【发布时间】:2013-05-03 15:56:45 【问题描述】:

我在 UIScrollView 中使用了 UILabel,但是在加载视图时我看不到文本。然后,如果我开始滚动,就会出现文本。

我做错了什么? 谢谢!

- (void)viewDidLoad

    [super viewDidLoad];

    [scrollView addSubview:mainLabel];
    [scrollView setAutoresizesSubviews:true];

    NSString *text = [textList objectAtIndex:(currentTextId)];

    CGFloat width = [mainLabel frame].size.width;
    CGSize textSize = [text sizeWithFont: [mainLabel font]
                         constrainedToSize:CGSizeMake(width, CGFLOAT_MAX)
                             lineBreakMode:NSLineBreakByWordWrapping];

    CGRect labelFrame = CGRectMake (0, 0, width, textSize.height);
    [mainLabel setFrame:labelFrame];
    [mainLabel setText:text];

【问题讨论】:

您使用的是在 Xcode 4.6.x 中创建的 nib 吗?如果是这样,它可能正在使用自动布局。 是的,我是,它在自动布局中。现在我禁用了它,设置了 scrollView contentSize 和 frame,它不再滚动了。我正在寻找我的代码有什么问题。 如果它不滚动,那是因为你设置的 contextSize 不正确。它必须大于滚动视图的大小 - 否则,没有可滚动的内容。 apeth.com/iosBook/ch20.html#_creating_a_scroll_view 【参考方案1】:

我认为你应该设置滚动视图的framecontentSize

【讨论】:

【参考方案2】:

您应该明确设置滚动视图contentSize,以便它知道标签有多大。

【讨论】:

以上是关于UIScrollView 滚动时跳跃的主要内容,如果未能解决你的问题,请参考以下文章

滚动 UIScrollView 时如何缩放

调整容器 uiscrollview 中所有 uiscrollview 的大小

UIScrollView 滚动问题之上的 UICollectionView

快速滚动 UIScrollView 时 UIImageView 停止调整大小

UIScrollView 不使用 RubyMotion 滚动

开始时从底部锚定的 UIScrollview