31

インターフェース ビルダーでは、高さ、幅を固定し、2 つのビューの幅を等しくすることができますが、ビューのサイズを変更するときに、幅と高さの比率を維持するように制約を設定するにはどうすればよいでしょうか?

私の特定のケースでは、View Controller に UIImageView があります。ビューのサイズが変更されると、画像ビューのサイズも変更されますが、幅: 高さの比率は 3:2 のままです。IBでそれを行うことは可能ですか?コードでそれを行うことは可能ですか?

ありがとう!

4

3 に答える 3

34

IB ではできないと思いますが、コードでは次のようにできます (iv はイメージ ビューへのアウトレットです)。

    [self.iv removeConstraints:self.iv.constraints];
    NSLayoutConstraint *con1 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1  constant:100];
    NSLayoutConstraint *con2 = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.iv attribute:NSLayoutAttributeWidth multiplier:.66 constant:0];
    [self.iv addConstraints:@[con1,con2]];

これにより、高さが明示的に 100 に設定され、幅と高さの比率が 3:2 に設定されます。

于 2013-01-07T00:30:50.923 に答える