对于iOS 6.0和iOS 7.0,Autolayout约束表现不同

时间:2014-04-08 13:04:45

标签: ios uiscrollview autolayout

我对UIScrollView&的Auto布局的奇怪行为感到困惑。在IOS 6.0上的子视图。下面的代码片段用于根据最后一个子视图(currentArticle)设置内容大小(通过自动布局方法),该子视图被添加到scrollview(当前scrollview)。

        self.lifeStyleContentSizeLayoutArray==nil?0:[currentScrollView removeConstraints:self.lifeStyleContentSizeLayoutArray];
        self.lifeStyleContentSizeLayoutArray=nil;
        self.lifeStyleContentSizeLayoutArray = [NSLayoutConstraint constraintsWithVisualFormat:[NSString stringWithFormat:@"H:[currentArticleView]-|"] options:0 metrics:nil views:@{@"currentArticleView":currentArticle}];
        [currentScrollView addConstraints:self.lifeStyleContentSizeLayoutArray];

上面的代码片段在IOS 7.0上工作得非常好,但是,在IOS 6.0上,滚动视图增加了一个空白区域(大约是760)。如果我们检查视觉格式语言,它需要指定标准空间(大约宽度为20),但是在iOS 6.1上大约是760。

下面的

是存储所有约束的数组的PO。

<__NSArrayM 0xa4612f0>(
{
    ArticleView = "<ArticleSummaryView: 0xb331ff0; frame = (0 0; 330 0); autoresize = RM+BM; layer = <CALayer: 0xb3335e0>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb334220 V:|-(0)-[ArticleSummaryView:0xb331ff0]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb334450 H:|-(0)-[ArticleSummaryView:0xb331ff0]   (Names: '|':UIScrollView:0xa462890 )>",
        "<NSLayoutConstraint:0xb3344b0 H:[ArticleSummaryView:0xb331ff0(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xa48ef80; frame = (338 0; 330 0); autoresize = RM+BM; tag = 1; layer = <CALayer: 0xa48efe0>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb113d70 V:|-(0)-[ArticleSummaryView:0xa48ef80]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb11c6f0 H:[ArticleSummaryView:0xb331ff0]-(NSSpace(8))-[ArticleSummaryView:0xa48ef80]>",
        "<NSLayoutConstraint:0xb11c730 H:[ArticleSummaryView:0xa48ef80(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xb11f9a0; frame = (676 0; 330 0); autoresize = RM+BM; tag = 2; layer = <CALayer: 0xb120d70>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb12f630 V:|-(0)-[ArticleSummaryView:0xb11f9a0]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb137f90 H:[ArticleSummaryView:0xa48ef80]-(NSSpace(8))-[ArticleSummaryView:0xb11f9a0]>",
        "<NSLayoutConstraint:0xb1125b0 H:[ArticleSummaryView:0xb11f9a0(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xa494550; frame = (1014 0; 330 0); autoresize = RM+BM; tag = 3; layer = <CALayer: 0xa4940f0>>";
    Const1 =     (
        "<NSLayoutConstraint:0xa4969e0 V:|-(0)-[ArticleSummaryView:0xa494550]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xa496dc0 H:[ArticleSummaryView:0xb11f9a0]-(NSSpace(8))-[ArticleSummaryView:0xa494550]>",
        "<NSLayoutConstraint:0xa496e00 H:[ArticleSummaryView:0xa494550(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xb468730; frame = (1352 0; 330 0); autoresize = RM+BM; tag = 4; layer = <CALayer: 0xb465060>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb46a8d0 V:|-(0)-[ArticleSummaryView:0xb468730]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb46acd0 H:[ArticleSummaryView:0xa494550]-(NSSpace(8))-[ArticleSummaryView:0xb468730]>",
        "<NSLayoutConstraint:0xb46ad10 H:[ArticleSummaryView:0xb468730(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xb11c200; frame = (1690 0; 330 0); autoresize = RM+BM; tag = 5; layer = <CALayer: 0xb138850>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb129850 V:|-(0)-[ArticleSummaryView:0xb11c200]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb11f400 H:[ArticleSummaryView:0xb468730]-(NSSpace(8))-[ArticleSummaryView:0xb11c200]>",
        "<NSLayoutConstraint:0xb11d620 H:[ArticleSummaryView:0xb11c200(330)]>"
    );
},
{
    ArticleView = "<ArticleSummaryView: 0xb3197d0; frame = (0 0; 1004 768); autoresize = RM+BM; tag = 6; layer = <CALayer: 0xb328b70>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb335240 V:|-(0)-[ArticleSummaryView:0xb3197d0]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb335640 H:[ArticleSummaryView:0xb11c200]-(NSSpace(8))-[ArticleSummaryView:0xb3197d0]>",
        "<NSLayoutConstraint:0xb335680 H:[ArticleSummaryView:0xb3197d0(330)]>"
    );
},
{
    ArticleView = "<**ArticleSummaryView: 0xa496ce0;** frame = (0 0; 1004 768); autoresize = RM+BM; tag = 7; layer = <CALayer: 0xa495d90>>";
    Const1 =     (
        "<NSLayoutConstraint:0xb44ba00 V:|-(0)-[ArticleSummaryView:0xa496ce0]   (Names: '|':UIScrollView:0xa462890 )>"
    );
    Const2 =     (
        "<NSLayoutConstraint:0xb449490 H:[ArticleSummaryView:0xb3197d0]-(NSSpace(8))-[ArticleSummaryView:0xa496ce0]>",
        "<NSLayoutConstraint:0xb40e830 H:[ArticleSummaryView:0xa496ce0(330)]>"
    );
}
)

内容大小布局po在下面给出

<__NSArrayM 0xb10df00>(
<NSLayoutConstraint:0xb11fa00 H:**[ArticleSummaryView:0xa496ce0]**-(NSSpace(20))-|   (Names: '|':UIScrollView:0xa462890 )>
)

任何帮助/解决方案/建议/解决方案都将受到高度赞赏。

感谢您宝贵的时间。

0 个答案:

没有答案