2016-05-05 5 views
4

私はおそらく私を狂ってしまう簡単な間違いがあります。 私はUIScrollView内でUIImageViewを使っています。ビューに画像を収めるには、imageViewの幅を取得して、ズームスケールを調整する必要があります。 しかし、コードimageViewの範囲は常に240

imageView.bounds.width 

は、常に関係なく、実際のイメージは持ってどのようなサイズ240.0を返しません。 Interface Builderでは、imageViewは水平方向と垂直方向の中央に配置され、クリップのサブビューは真で、Modeはアスペクトに適合します。 アイデア

+1

ビューをどのようにレイアウトしていますか?制約やフレームを使用していますか?このコードやインタフェースビルダーで設定された制約を確認できますか? – Dare

+1

あなたはいつ幅にアクセスしていますか? 'viewDidLoad'にある場合、この値は常にあなたのストーリーボードの値になります。 'viewDidAppear'では、アウトレットの実際のフレームと境界がシステムによって設定され、その値が変更されるはずです。 – pbush25

+0

イメージビューのディメンションは、イメージのディメンションに関係なく同じままです。あなたは境界の長方形を見たいと思いますか? (私はあなたの質問に役立つ答えを得るために詳細が必要だと思う) –

答えて

0

UIImageViewのサイズは、表示される画像のサイズと関係がありません。 UIImageViewは、おそらくストーリーボードまたはそれ以外の場所で240.0にサイズが設定されています。画像は、モードに基づいてビューに合わせて縮小または上げられます。実際画像のサイズを取得するには、次のコードを試してください:画像のサイズが

let image = UIImage("my_image_file") 
let imageHeight = image.size.height 
let imageWidth = image.size.width 

は今、あなたが適切にビューのサイズを設定することができ、知っています。

+0

イメージを設定した後、イメージビューで 'sizeToFit'を呼び出すだけです。 – rmaddy

0

私は同じ問題を抱えていました。今私はmain_queueの境界をチェックし、すべて正常に動作します。

dispatch_async(dispatch_get_main_queue(), { 
    print(self.image.bounds.width) 
})