0

ここにいくつかのコードがあります:

UIView *c = [[UIView alloc] initWithFrame:CGRectZero];
[self addSubview:c];
c.translatesAutoresizingMaskIntoConstraints = NO;
c. backgroundColor = [UIColor lightGrayColor];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[c(>=600)]-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(c)]] ;
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[c]|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(c)]] ;![enter image description here][1]

どうしてこんな形になってしまうのでしょうか?私のスーパービューで何かが台無しになっていますか?

ぐちゃぐちゃ拘束のイメージ】

私の包含ビューのセットアップ方法は次のとおりです。 包含ビューの IB セットアップ

4

2 に答える 2

0

のスーパービューはcですself。違いself.superviewます。

したがって、これらの行は次のようになります。

[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[c]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(c)]] ;
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[c]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(c)]] ;

また、UIView の指定されたイニシャライザは-initWithFrame:呼び出しているだけでinit、動作することが保証されていません。そのため、最初の行は

UIView *c = [[UIView alloc] initWithFrame:CGRectZero];
于 2013-05-05T02:36:49.240 に答える
0

Ok。すべてを保持していたビューが UIScrollView のサブクラスだったために、制約が失敗したように見えます。

于 2013-05-24T00:43:46.677 に答える