【发布时间】:2016-08-30 16:49:27
【问题描述】:
我有UIScrollView和UIView(作为ContentView)和UITableView和两个UIWebView(见img)。我需要把它放到 ViewController 中。
我现在怎么做:
OrderInfoScrollView *newView = [[OrderInfoScrollView alloc] loadObject];
[self.view addSubview:newView];
初始化看起来像:
- (OrderInfoScrollView *)loadObject {
OrderInfoScrollView *result = nil;
NSArray* elements = [[NSBundle mainBundle] loadNibNamed: @"OrderInfoView" owner:self options: nil];
for (id anObject in elements)
{
if ([anObject isKindOfClass:[self class]])
{
result = anObject;
break;
}
}
return result;
}
它工作正常,但我不能为此添加约束。我需要equal width to self.view, leading space = 3, top margin = 0。
我已经试过了:
UIView *superView = self.OrderInfoView;
[superView addSubview:newView];
NSDictionary *views = NSDictionaryOfVariableBindings(superView, newView);
NSArray *equalWidthConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[newView]" options:0 metrics:nil views:views];
NSArray *verticalConstraints =[NSLayoutConstraint
//NSArray *equalWidthConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"[newView(==superView)]" options:0 metrics:nil views:views];
NSArray *verticalConstraints =[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[newView]" options:0 metrics:nil views:views];
NSArray *horizontalConstraints =[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[newView]" options:0 metrics:nil views:views];
[superView addConstraints:equalWidthConstraints];
[superView addConstraints:horizontalConstraints];
[superView addConstraints:verticalConstraints];
还有这样的:
NSLayoutConstraint *constraint = [NSLayoutConstraint
constraintWithItem:newView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:1.0f
constant:0.0f];
[self.view addConstraint:constraint4];
另外,我尝试添加额外的UIView 并将我的滚动视图添加到此(没有帮助)。结构是这样的:
-UIView
--UIView
---UIScrollView
我尝试了setTranslatesAutoresizingMaskIntoConstraints:NO 和新方法,但在这种情况下我的UIScrollView 根本没有出现。
[newView setTranslatesAutoresizingMaskIntoConstraints:YES];
NSLayoutConstraint *width =[NSLayoutConstraint
constraintWithItem:newView
attribute:NSLayoutAttributeWidth
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0];
[self.view addConstraint:width];
有什么想法吗?
我真的需要重用这个UIScrollView。
【问题讨论】:
标签: ios objective-c uiscrollview autolayout xib