UIScrollView contentSize自动布局约束问题

时间:2013-04-12 16:05:28

标签: ios6 uiscrollview autolayout

情况就是这样。

我有一个UIScrollView使用自动布局,当我旋转它时成功调整到屏幕,我的问题是scrollView的内容无法调整。

scrollView是红色部分。

1 2

这是我的代码:

-(void)preparePromotions
{

CGRect frameViewPromotions = [self getPossibleFrame];


    frameViewPromotions.origin.x = 10.0f;
    frameViewPromotions.origin.y = 10.0f;
    if (!_promotionsViewController)
    {
        _promotionsViewController = [[PromotionsViewController alloc] init];
    }
    _promotionsViewController.view.frame = frameViewPromotions;
    _promotionsViewController.margin = 2.0f;
    _promotionsViewController.diameterPageController = 10.0f;
    _promotionsViewController.marginPageController = 15.0f;
    _promotionsViewController.frameContentView = frameViewPromotions;

    [self addChildViewController:_promotionsViewController];

_promotionsViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:_promotionsViewController.view];
[self createCosntraintWithView:_promotionsViewController.view];    

}


-(void)createCosntraintWithView:(UIView *)subview
{
NSDictionary *views = NSDictionaryOfVariableBindings(subview);

[self.view addConstraints:
 [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-10-[subview]-10-|"
                                         options:0
                                         metrics:nil
                                           views:views]];

[self.view addConstraints:
 [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-40-[subview]-50-|"
                                         options:0
                                         metrics:nil
                                           views:views]];

}

1 个答案:

答案 0 :(得分:1)

scrollView的内容无法调整,因为您在那里使用框架而不是AutoLayout。如果您将帧重写为AutoLayout约束,它将在您旋转时进行调整。始终尽量避免混合AutoLayout和帧,因为您可能会得到不可预测的结果。