ios - 如果启用了自动布局,则防止 UIScrollView 水平滚动

标签 ios uiscrollview autolayout

我有这个带有自动布局的 ScrollView 。 ScrollView 具有蓝色。在横向模式下看起来不错。

enter image description here

但在纵向模式下,我不会让水平滚动,而是会用橙色减小 View 的宽度,以与右边缘保持 20 像素的距离。

如何?我也在右侧设置了 20px 约束,但是旋转时 contentSize 没有更新。我知道在自动布局的情况下不允许以编程方式设置 contentSize。

enter image description here

在这里你可以看到我设置的约束:

enter image description here

最佳答案

我想通了。我没有设置正确的约束,而是为 View 宽度创建了约束,为约束创建了一个 IBOutlet,并在代码中设置了约束的常量。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {

        //self.scrollView.contentSize = CGSizeMake(944, 1600);
        _viewWidthConstrain.constant = 944;

    } else {

        //self.scrollView.contentSize = CGSizeMake(500, 1600);
        _viewWidthConstrain.constant = 500;
    }
}

结果如下:

enter image description here

关于ios - 如果启用了自动布局,则防止 UIScrollView 水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20299767/

相关文章:

IOS - 限制用户最多选择 8 个图像并使用 For 循环将多个图像上传到 Firebase

ios - 将图像旋转超过 180 度

ios - 是否可以通过自动布局实现重叠 View ?

ios - 取消选中后 UIScrollView 不滚动 "Adjust scroll view insets"xcode 6

ios - 重新实例化实例变量 - 一个设计查询

android - 我们的移动应用程序是否可以在打开/不打开之前在安装和更新时执行代码?

ios - 无法将图像加载到 ScrollView 中进行缩放和滚动

ios - 使用 UIPageViewController、UIScrollView 的 Xamarin.iOS ScrollView

objective-c - UIScrollView ScrollRectToVisible - 不使用动画 = 是

iphone - Swift - TableView 如何创建可扩展部分