2017-06-09 12 views
0

私は2種類の画像を持っています1.Squareと他の2.比率3:4の画像。また、入力画像のアスペクト比に関する情報を事前に取得しています(currentImageAspectRatio)。 1つのUIImageViewで両方の種類の画像を扱いたい。私のImageViewのに4つの制約、およびInstalled 3その後、未チェック:1と3:アスペクト比の制約が変更されない

は、ストーリーボード

で、私は両方の1を追加した制約4。

マイviewDidLoadコードで

if currentImageAspectRatio == .square{ 
    // Already Square 
} else { 
    NSLayoutConstraint.deactivate([squareImageConstraint]) 
    imageView.addConstraint(threeByFourImageConstraint) 
    self.view.layoutIfNeeded() 
} 

を持っている。しかし、これは動作するようには思えません。私もviewWillAppear:に同じコードを入れようとしましたが、それも機能しませんでした。

私は何か間違っていると混乱しています。

また、私は制約を変更するようなものを行うのに最も理想的な場所はどこですか(私はviewWillLayoutSubviewsを使用することを考えていました)。

+0

あなたはthreeByFourImageConstraintを追加しましたが、もう一度それを解除したと言いました。理解できません。 dude –

+0

このコードを 'viewDidAppear'で試してみるか、' viewDidLayoutSubviews'でも正しい方法を考えています。 –

+0

以前は 'viewWillLayoutSubviews'、' viewWillAppear'、 'viewDidLoad'からコードを呼び出そうとしていました。 'viewDidLayoutSubviews'からそれを呼び出すことによって。 –

答えて

0

同じコードをviewDidLayoutSubviewsから呼び出してくれました。

関連する問題