簡體   English   中英

來自xib的ios8加載視圖:無法同時滿足約束

[英]ios8 loading view from xib: Unable to simultaneously satisfy constraints

我有一個非常簡單的設置:

我在xib有帶有UI的空VC和UIView

MyView.m:

- (void) commonInit {
    [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0];
    [self addSubview:self.view];
}

-(id)initWithCoder:(NSCoder *)aDecoder{
    self = [super initWithCoder:aDecoder];

    if (self) {
        [self commonInit];
    }

    return self;
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    if (self) {
        [self commonInit];
        self.bounds = self.view.bounds;
    }

    return self;
}

還有我的MyVC.m

- (void)viewDidLoad {
    [super viewDidLoad];
    self.myView = [[MyView alloc] init];
    NSDictionary *bindings = @{@"myView": self.myView};
    [self.view addSubview:self.offlinePromoView];

    self.myView.translatesAutoresizingMaskIntoConstraints = NO;

    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.myView
                                                          attribute:NSLayoutAttributeCenterX
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(topSpacing)-[myView]-|" options:0 metrics:@{@"topSpacing": @70} views:bindings]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[myView]-|" options:0 metrics:nil views:bindings]];
}

我希望子視圖從頂部填充70點,並且寬度與控制器視圖相同。 但是我得到:

(
    "<NSLayoutConstraint:0x176ae8d0 MyView:0x176a7770.centerX == UIView:0x176a7840.centerX>",
    "<NSLayoutConstraint:0x176b10b0 MyView:0x176a7770.leading == UIView:0x176a7840.leadingMargin>",
    "<NSLayoutConstraint:0x176b0900 UIView:0x176a7840.trailingMargin == MyView:0x176a7770.trailing>"
)

0x176a7840self.view在我的VC。

我究竟做錯了什么?

嘗試這樣:-

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[myView]-(-70)-|" options:0 metrics:nil views:bindings]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[myView]|" options:0 metrics:nil views:bindings]];
NSDictionary *bindings = NSDictionaryOfVariableBindings(view);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(==70)-[view]-|" options:0 metrics:nil views:bindings]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[view]-|" options:0 metrics:nil views:bindings]];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM