iphone - 具有自动布局的 UIScrollView 无法按预期工作

标签 iphone uiscrollview xamarin.ios interface-builder autolayout

我有一个 UIViewController ,其结构如下:

查看 -> ScrollView -> 查看 -> 各种各样的东西

我读到最好将“各种东西”放在 ScrollView 内的 View 中。一切都很完美,直到我必须支持 iPhone 5 并使用 AutoLayout。现在 ScrollView 已经成为我存在的祸根。

如何让 ScrollView 正确滚动?我已经尝试了各种方法,但它只是无法正常工作,或者如果它可以工作,它会不断地想要滚动到顶部,或者当导航回屏幕时,内容偏移量是错误的。

目前我有以下方法可以使 ScrollView 半工作:

public override void ViewDidLayoutSubviews()
{
    base.ViewDidLayoutSubviews();
    View.LayoutIfNeeded();
    scrollView.ContentSize = scrollView.Subviews[0].Frame.Size;
}

使用自动布局执行此操作的正确方法是什么?应该没这么难吧!必须有一种方法可以通过 IB 或代码使其正确...

最佳答案

该功能是不必要的。如果您使用 IB,请确保 UIScrollView 的“底部空间: View ”约束等于默认值。您可以通过在编辑约束时选中“标准”复选框来完成此操作。

如果您滚动离开起始位置,导航到另一个页面并导航回来,UIScrollView 的行为仍然会很奇怪。您可以通过在 ViewWillAppear 中将 UIScrollView 的 contentOffset 重置为 (0, 0) 来解决此问题:

public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);
        scrollView.ContentOffset = new PointF(0, 0);
    }

关于iphone - 具有自动布局的 UIScrollView 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17421321/

相关文章:

iphone - NSDateComponents 返回错误的日期

testing - 如何运行 mtouch 命令以在模拟器上启动 Xamarin.iOS 应用程序以进行自动化测试?

iPhone OS 4.x - 后台 TCP 套接字没有响应

iphone - 如何为图像 iOS SDK 添加效果/滤镜

iPhone/iPad 方向处理

ios - XCODE/Swift Autolayout ScrollView with dynamic label, textview etc. 如何根据textview设置scrollview高度

ios - 如何在 ScrollView 中制作一组按钮?

ios - 防止 UICollectionView 中的项目 "wrapping"

Monotouch 中的 Linq(在设备上调试)

c# - 如何卸载菜单 (UIViewControllers)