HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UIScrollview自动布局似乎无法在iOS8 / Xcode 6预览中使用?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
UIScrollView autolayout的以下步骤对我有用,但不适用于iOS8 / Xcode 6预览:(使用storyboard,启用了大小等级):

>将滚动视图添加到根视图.
>将零空间固定到超视图的所有边缘.
>在上面的scrollview中添加一个UIView(contentView).
>将零空格固定到scrollview的所有边缘
>向contentView添加一些小部件,并将contentView的高度更改为2000.

=>这个contentView在iOS 7中滚动,但我无法在iOS 8预览中使用相同的步骤.

即使它似乎在iOS 7中工作,我可能不会采取正确的方式吗?有什么建议?

解决方法@H_673_14@
我很惊讶没有看到更多关于此的评论.滚动视图内部自动布局在iOS 8中大部分被破坏(截至撰写本文时为止).

编辑这是在种子5中修复的,所以应该忽略这个注释!

该规则应该是(参见https://developer.apple.com/library/prerelease/ios/technotes/tn2154/_index.html),如果滚动视图(其子视图或子视图)的内容固定到滚动视图的所有四个边界,则它设置内容大小.

然而,在iOS 8中,这失败了 – 但是以一种奇怪的方式.只有当确定子视图的高度和宽度的约束都是绝对的而不是内在的时,它才会失败.

因此,例如,虑该技术说明底部代码,其中滚动视图和一个非常大的图像视图在代码中创建(这里是;我已经纠正了一个丢弃了at符号的小错误):

- (void)viewDidLoad {
    UIScrollView *scrollView;
    UIImageView *imageView;
    NSDictionary *viewsDictionary;
    // Create the scroll view and the image view.
    scrollView  = [[UIScrollView alloc] init];
    imageView = [[UIImageView alloc] init];
    // Add an image to the image view.
    [imageView setImage:[UIImage imagenamed:@"MyReallyBigImage"]];
    // Add the scroll view to our view.
    [self.view addSubview:scrollView];
    // Add the image view to the scroll view.
    [scrollView addSubview:imageView];
    // Set the translatesAutoresizingMaskIntoConsTraints to NO so that the views
    // autoresizing mask is not translated into auto layout consTraints.
    scrollView.translatesAutoresizingMaskIntoConsTraints  = NO;
    imageView.translatesAutoresizingMaskIntoConsTraints = NO;
    // Set the consTraints for the scroll view and the image view.
    viewsDictionary = NSDictionaryOfVariableBindings(scrollView,imageView);
    [self.view addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"H:|[scrollView]|" 
        options:0 metrics: 0 views:viewsDictionary]];
    [self.view addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"V:|[scrollView]|" 
        options:0 metrics: 0 views:viewsDictionary]];
    [scrollView addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"H:|[imageView]|" 
        options:0 metrics: 0 views:viewsDictionary]];
    [scrollView addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"V:|[imageView]|" 
        options:0 metrics: 0 views:viewsDictionary]];
}

代码有效(假设您的图像非常大),因为图像视图的大小受内在约束的影响.但现在更改最后两行,如下所示:

[scrollView addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"H:|[imageView(1000)]|" 
        options:0 metrics: 0 views:viewsDictionary]];
    [scrollView addConsTraints:[NSLayoutConsTraint 
        consTraintsWithVisualFormat:@"V:|[imageView(1000)]|" 
        options:0 metrics: 0 views:viewsDictionary]];

现在你所拥有的是一个可在iOS 7上滚动但在iOS 8上不可滚动的滚动视图.进一步的调查显示是因内容大小保持在(0,0);它不尊重内容视图的绝对宽度和高度约束.

大佬总结

以上是大佬教程为你收集整理的UIScrollview自动布局似乎无法在iOS8 / Xcode 6预览中使用?全部内容,希望文章能够帮你解决UIScrollview自动布局似乎无法在iOS8 / Xcode 6预览中使用?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。