10816


アートワークを取得し、それを使用機種に関わらず横幅最大サイズで表示しようとしています。  
現在以下のようなコードを書いています。

[code]

    //スクリーンのサイズを取得。
    let myScreenSize: CGSize = UIScreen.mainScreen().bounds.size
    println("\(myScreenSize)") //(320.0, 568.0) -> 5Sのサイズです。
    let screenSizeW = myScreenSize.width
    println("\(screenSizeW)") //320.0
    
    //画面に配置したUIImageViewに設定
    //songArtworkImg -> ストーリーボードで配置したUIImageViewのOutlet
    //getArtwork -> あるmediaItemのvalueForProperty(MPMediaItemPropertyArtwork)
    //縦横同サイズかつ横幅最大となるように設定（しているつもりです。）
    songArtworkImg.image = getArtwork.imageWithSize(CGSizeMake(screenSizeW, screenSizeW))
    
[/code]

このコードを実行すると、アートワークは表示されるのですが、  
選択する曲によって、表示されるアートワークのサイズが違います。  
(画面に入りきらなかったり、オリジナルのサイズに左右されている感じです。)  
設定されたアートワークのサイズに関わらず、横幅最大となるように設定するにはどうすればよいでしょうか？

アドバイスよろしくお願いします。


CC BY-SA 3.0
2015-05-31T08:28:38.377
10812
2015-05-31T11:03:30.177
9857
question
swift uiimage
アートワークを画面幅最大に表示したい。


これは **Auto Layout**
に丸投げして処理してもらうのが賢明だと思います。たんにデバイスのディスプレイサイズの差異のことだけでなく、画面の向きを縦横変えた時の処理も、Auto
Layoutなら、適切にかつ瞬時にやってくれます。  
Auto Layoutの適用は、Storyboardで編集します。

  1. `UIImageView`のインスタンス`songArtworkImg`を選択し、マウスドラッグでベースビューのサイズいっぱいに広げます。
  2. Constraintを、下図のようにベースビューのエッジに揃えます。

![画像の説明をここに入力](https://i.stack.imgur.com/YktgN.png)

  3. 「add 4 Constraints」ボタンを押します。
  4. `songArtworkImg`のAttributeを、下図のように「Mode: Aspect Fit」にします。

![画像の説明をここに入力](https://i.stack.imgur.com/WhG57.png)


CC BY-SA 3.0
2015-05-31T11:03:30.177
10816
2015-05-31T11:03:30.177
7362
10812
answer