iPhone UIScrollView ContentSize 在旋转/转换为横向时有额外的高度

标签 iphone objective-c xcode ipad

做一些 iPhone 开发,让应用程序运行良好。但是,我有一个 UIScrollView,它可以自动调整内容和 contentSize,效果很好,除了当我旋转到横向 View 时,它在滚动高度上总是有 100 左右的额外像素。我不希望用户滚动到内容太远。

有没有其他人遇到过这个问题或知道解决方法?

提前致谢,

迈克尔

最佳答案

我遇到了同样的问题。在我的例子中,我循环遍历了一个 UIScrollView,试图动态计算它的 contentSize。在遍历 subview 时,我在 subview 中发现了两个神秘的 imageView(不是我添加的),它们加起来刚好是 100 像素。原来这两张图片实际上是自动添加到scrollview的scroll indicator。

我的解决方案是创建一个容器 View 类,我们称它为 ContainerView,并在其中创建 ScrollView 。

在这个 ContainerView 中,我覆盖了 addSubview 和 willRemoveSubview 方法,如下所示:

- (void)addSubview:(UIView *)view {
    [_addedSubviews addObject:view];
    [_scrollView addSubview:view];
}

- (void)willRemoveSubview:(UIView *)subview {
    [_addedSubviews removeObject:subview];
    [_scrollView willRemoveSubview:subview];
}

现在您可以添加一种计算大小的方法。这次我们将遍历名为 _addedSubviews 的数组,而不是 scrollviews subview ,因为我们知道 _addedSubviews 中的 View 只是我们添加的 View 。正因为如此,我们将避免循环滚动指示器和诸如此类的东西:-)

最后只是循环计算。

- (CGSize)desiredContentSize {
    for(UIView *mySubviews in _addedSubviews) {
        // Calculate size
    }
    // Return size
}

关于iPhone UIScrollView ContentSize 在旋转/转换为横向时有额外的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2695547/

相关文章:

iphone - UISearchDisplayController—为什么我的搜索结果 View 包含空单元格?

iphone - 一步完成 Facebook SSO 和第三方站点注册?

ios 键盘未显示在设置中

objective-c - 捕获 Mac 屏幕

iphone - UITableViewCell 编辑缩进

iphone - 推送通知在 iOS 5.0.1 上不起作用

iphone - 用户是否可以使用iPhone sdk通过LinkedIn通过好友邀请 friend ?

ios - Xcode 中分配检测模板中持久和 transient 列的真正含义

ios - xcodebuild,缺少 iOS 模拟器 sdk

ios - 仅发布到 iOS8+?