ios - 自动布局以编程方式生成的 View

标签 ios objective-c autolayout xib custom-view

有两个 View headerView 和 footterView。我希望将 View 一个放在另一个下面。 我的意思是说 headerView 在上面,footerView 在 headerView 下面。

UIView *mainview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    headerView =  [[[NSBundle mainBundle] loadNibNamed:@"BaseHeader" owner:self options:nil] objectAtIndex:0];
    footterView = [[[NSBundle mainBundle] loadNibNamed:@"BaseFotter" owner:self options:nil] objectAtIndex:0];

 self.view = mainview;
 [mainview  addSubview:headerView];
 [mainview  addSubview:footterView];

我试过如下添加约束

NSDictionary *viewsDictionary =
NSDictionaryOfVariableBindings(headerView,footterView);

NSLayoutConstraint *constraint = [[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[headerView]-[footterView]|" options:0 metrics:nil views:viewsDictionary] objectAtIndex:0];

NSLayoutConstraint *mconstraint = [[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[headerView(==footterView)]|" options:0 metrics:nil views:viewsDictionary] objectAtIndex:0];

[mainview addConstraint:constraint];
[mainview addConstraint:mconstraint];

但总是只有 footerView 单独显示在屏幕上。 如果我按以下顺序添加 View ,则始终显示 HeaderView。

[mainview  addSubview:footterView];
[mainview  addSubview:headerView];

在两个 xib(BaseHeader.xib 和 BaseFotter.xib)中都检查了 AutoLayout。我需要在 xib 中做更多的事情吗?

最佳答案

更改您的约束,将代码添加到:

NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[headerView]-[footerView]|"options:0 metrics:nil views:viewsDictionary];

NSArray *mconstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[headerView(==footerView)]|"options:0 metrics:nil views:viewsDictionary];

[mainview addConstraints: 约束]; [mainview addConstraints:mconstraints];

关于ios - 自动布局以编程方式生成的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015411/

相关文章:

ios Sprite Kit 截图?

ios - 如何将 4 个按钮对齐在一起? (自动布局)

ios - 如何使用 UIBezierPath 为 Button 创建特定形状,如下面的带有 Swift 代码的附加图像所示?

iPhone 应用程序崩溃且没有日志(仅具有分发配置文件)

ios - 如何在iOS中基于String动态调整UITextview高度

ios - 在动态 TableViewCell 中添加一个按钮

ios - dequeueReusableCell 打破 cliptobounds

ios - iOS 上的蓝牙外设卡在 "Connecting"状态

iOS - TableView 和 TableView Controller 有什么区别

ios - 这些天我需要手动添加实例变量和合成语句吗?