Проблема ограничения автомакета UIScrollView contentSize

Вот ситуация.

У меня есть UIScrollView, который использует автомакет, который успешно адаптируется к экрану, когда я его поворачиваю, моя проблема связана с содержимым scrollView, которое не настраивается.

ScrollView — красная часть.

  1

Вот мой код:

-(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]];

}

person jonathanwiesel    schedule 12.04.2013    source источник


Ответы (1)


Содержимое scrollView не настраивается, потому что вы используете там фреймы вместо AutoLayout. Если вы перепишете свои кадры в соответствии с ограничениями AutoLayout, они будут корректироваться при повороте. Всегда старайтесь избегать смешивания AutoLayout и фреймов, так как вы можете получить непредсказуемые результаты.

person Whakkee    schedule 16.04.2013