【问题标题】:UIScrollView: false scroll positionUIScrollView:错误的滚动位置
【发布时间】:2013-02-07 10:56:08
【问题描述】:

我通过单击一些 UIButton 来更改 UIView 的内容。 (按钮和 UIView 包含在同一个 UIScrollView 中)

例如:

案例 1:我添加内容并提高 View 和 ScrollView 的高度。

案例 2:我删除内容并降低 View 和 ScrollView 的高度。

在这两种情况下,我都设置了滚动位置:

[newsScrollView setContentOffset:CGPointMake(0,240) animated:YES];

在案例 1 中,它运行良好,并且 ScrollView 显示正确的内容,但在案例 2 中,它在 ScrollView 的底部滚动。

有人知道错在哪里吗?

【问题讨论】:

  • 在case2中设置[newsScrollView setContentOffset:CGPointMake(0,0) animated:YES];
  • 在这两种情况下,滚动高度都应该是 240。想法是第一个 240 显示标题信息,然后是导航按钮以获取更多信息。单击后,我更改了视图的内容,滚动视图的第一个位置是导航(标题信息位于滚动视图的隐藏区域中)

标签: objective-c uiscrollview


【解决方案1】:

您的滚动视图正在按照您的要求执行。您需要确保正确设置 UIScrollView 的 contentSize 以反映其中包含的内容量,如果您要删除和添加内容,这可能会有所不同。

如果您将偏移量设置为 (0, 240),并且它正在滚动到底部,这可能是因为您的 contentSize 小于 240。

【讨论】:

  • 如果我更改内容,我也会更改滚动视图的内容大小。滚动视图的大小在每种情况下都高于 240,因为滚动视图的高度是这样的:240 标题信息 + 40 导航 + XXX 更改内容
【解决方案2】:

看起来错误是基于 iOS 版本的。

它适用于:

  • 模拟器 6.0
  • 装有 iOS 6.0.1 的 iPhone 4 gs

失败了:

  • 模拟器 5.1
  • 模拟器 5.0
  • iPhone 3 宽度 5.1.1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多