2016-03-23 3 views
0

xibからロードされ、UIlabels、UIImageViewなどに制約があるUIViewを適切にスケールする方法。ここでUIViewブレーク制約のスケーリング

は、私はそれを拡張する方法のコードです:私は警告を受け、UIImageViewは、内部のスケール結果として誤っ

[UIView animateWithDuration:aDuration 
         delay:aDelay 
        options:UIViewAnimationOptionCurveEaseOut 
       animations:^{ 

        aCardView.transform = CGAffineTransformMakeScale(aZoom, aZoom); 

       } completion:^(BOOL finished) { 

       }]; 

しかし、私はのUIViewControllerからロードされているのと同じのUIViewをスケーリングするとき、それはうまく機能し、警告はありません。ここで

は、私が受けた警告は、次のとおりです。

"<NSAutoresizingMaskLayoutConstraint:0x13aeca670 h=-&- v=-&- FFCardView:0x13af8e840.width == FFCardsCollectionView:0x13700a380.width - 129>", 
"<NSLayoutConstraint:0x13705adc0 FFCardsCollectionView:0x13700a380.trailing == UITableView:0x1360a6400.trailing>", 
"<NSLayoutConstraint:0x13706bc90 FFCardsCollectionView:0x13700a380.leading == UITableView:0x1360a6400.leading>", 
"<NSLayoutConstraint:0x13705c460 H:|-(0)-[UITableView:0x1360a6400] (Names: '|':UIView:0x135f4dfb0)>", 
"<NSLayoutConstraint:0x13705c4b0 H:[UITableView:0x1360a6400]-(0)-| (Names: '|':UIView:0x135f4dfb0)>", 
"<NSLayoutConstraint:0x13ade45d0 H:[UIImageView:0x13af0ac90(300)]>", 
"<NSLayoutConstraint:0x13af9a0f0 H:|-(0)-[UIImageView:0x13af0ac90] (Names: '|':FFCardView:0x13af8e840)>", 
"<NSLayoutConstraint:0x13af9a140 H:[UIImageView:0x13af0ac90]-(0)-| (Names: '|':FFCardView:0x13af8e840)>", 
"<NSLayoutConstraint:0x135fe6f00 'UIView-Encapsulated-Layout-Width' H:[UIView:0x135f4dfb0(375)]>" 
+0

UIViewControllerのビューにはxibのビューと同じ制約がありますか? – Jelly

+0

はい。それは同じ制限を持っています – Sergio

+0

そして、警告は何を言いますか?また、iOSのバージョンをテストしていますか? – Jelly

答えて

0

私はあなたが提供する警告から見る問題はあなたが制約と矛盾するサイズにあなたの視野を拡大しようとしているということです。たとえば、先頭と末尾のマージンを持つImageViewと、300 widthです。ビューを幅が300より小さいサイズに拡大しようとすると、制約が崩れてレイアウトも変わります。スケーリングは、ビューに合わせて縮尺を変えないため、ビューには常に制約があります。スケーリング時に制約を変更することはもちろん可能ですが、これが別の解決策です。本当にあなたの必要性にかかっています。

+0

Interface BuilderでUIImageViewの幅を設定できないので、エラーが発生します。私は[self updateConstrains]と呼ぶべきでしょうか?毎回UIViewをスケールしますか? – Sergio

+0

上記の警告は、Interface Builderで既に300という幅が設定されていることを示しています。 '[self updateConstrains]'を呼び出すと、制約の変更が更新されますが、どこにも変更を加えないので、何もしません。 – Jelly

関連する問題