2016-12-11 4 views
0

横長モードの携帯端末の高さに基づいて画像のサイズを変更するにはどうすればよいですか?私は広いイメージ(定規)を持ち、イメージを前後にスライドさせたいと思っています。イメージを拡大縮小しようとしましたが、動作させることができません。携帯端末の高さに基づいて画像のサイズを変更します

func resizeImage(size: CGSize) { 


    let scaleFactor = imageView.bounds.height/size.height 

    let newHeight = imageView.bounds.height * scaleFactor 
    let newWidth = imageView.bounds.width * scaleFactor 

    var newSize: CGSize 
    newSize = CGSize(newWidth, newHeight) 

    imageView.frame = CGRect(origin: imageView.frame.origin, size: newSize) 

    scrollView.contentSize = imageView.bounds.size 
    scrollView.autoresizingMask = [.flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin, .flexibleRightMargin] 
    self.scrollView.contentMode = UIViewContentMode.scaleAspectFit; 
} 
+0

この問題を処理するためにautolayoutを使用しますが、制約の優先度を操作する必要があります。一度チェックしてください –

答えて

0

あなたはストーリーボードを使用している場合、それは私

+0

外部リンクのみで構成されるアンサーはお勧めしません。 [ヘルプセクション](http://stackoverflow.com/help/how-to-answer)を引用するには: "ターゲットサイトに到達できない、または永久にオフラインになる場合に備えて、常に重要なリンクの最も関連性の高い部分を引用します。 – Meyer

0

のために働いています。このリンク=>https://github.com/roadfire/ScaleImageByDeviceを参照してください、自動レイアウト制約をどうする方が簡単です。 MultiplierEqual Height Constraintを使用する必要があります。私も初心者ですが、この方法をランドスケープモードに使用していませんが、私はそれもランドスケープのために働くことを前提としています。

、次の手順を実行します -

  1. は、ビューの作成中に、あなたのストーリーボードで使用しているビューは、iPhone 7であると仮定だからあなたの画面の高さでしょう667

  2. このビューでは、画像が高さが200で完璧に見えるとします。 そこで乗数として比を使用して両方のビュー(すなわちImageViewのとスーパー)を選択することにより、比200/667 = 0.299

  3. 今設定Equal Height Constraintを取ります。あなたが最後に一番下View as:

上のオプションを使用して他のデバイスとの向きを確認することができます

  • 、画像の高さ制約は、次のようになります。 My height ratio is 0.4 (pic here)

  • 関連する問題