情况就是这样。
我有一个UIScrollView使用自动布局,当我旋转它时成功调整到屏幕,我的问题是scrollView的内容无法调整。
scrollView是红色部分。
这是我的代码:
-(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]];
}
答案 0 :(得分:1)
scrollView的内容无法调整,因为您在那里使用框架而不是AutoLayout。如果您将帧重写为AutoLayout约束,它将在您旋转时进行调整。始终尽量避免混合AutoLayout和帧,因为您可能会得到不可预测的结果。