【发布时间】:2016-09-19 10:13:30
【问题描述】:
我已将自己的自定义uiview 添加到self.view。由于在这种情况下我们无法在情节提要中设置约束,我尝试以编程方式添加。
关注了这个How to Create layout constraints programmatically。
我正在使用下面的代码。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[customView setNeedsUpdateConstraints];
}
-(void)updateViewConstraints
{
UIEdgeInsets padding = UIEdgeInsetsMake(10, 10, 10, 10);
[self.view addConstraints:@[
//view1 constraints
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:padding.top],
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:padding.left],
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeBottom
multiplier:1.0
constant:-padding.bottom],
[NSLayoutConstraint constraintWithItem:customView
attribute:NSLayoutAttributeRight
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1
constant:-padding.right],
]];
}
我从viewDidLoad 打电话给[self updateViewConstraints],但我仍然在风景中看到一半。
对此有任何想法。提前致谢。
【问题讨论】:
-
如果您不向我们展示您添加的约束,我们如何提供答案?
-
@Lefteris 我添加了使用相同约束的链接。
标签: ios objective-c uiinterfaceorientation landscape-portrait autolayout