読者です 読者をやめる 読者になる 読者になる

"まだ"の力 [Swift]基礎辞書

学んだことを書いていきます。質問やエラーなどございましたらお気軽にコメントお願いします。

画面ぴったりに画像を出力「UIScreen、UIImege」

画像を自在に操って表示したい時に必要な知識は、UIScreenとUIImege!
UIScreenは主に画面のサイズを測って数値化してくれます。
UIImageは画像を表示できる画面(View)を作ってそこに表示させることができます。
では使い方に移ります。
画面サイズを取得するコードはこちら




 UIScreen.mainScreen().bounds.width  
翻訳

UIScreen |UIScreenというクラス
mainScreen()|主な画面(表示できる画面 )
bounds  |限界
width   |横幅
直訳すると
UIScreenというクラスの、表示できる画面の、限界の範囲の、横幅
これで横幅の大きさを数としてゲットできます。また縦幅も同様でwidth(横幅)をheigth(縦幅)にするだけ。

UIImageは実際のコードを書きながらコメントしていきます!
実際のコードを書いてみましょう。ここで少し疲れたら目を瞑って10秒深呼吸。













import UIKit

class ViewController: UIViewController {
    
    var ImageView: UIImageView!    //ここに!を入れないとエラーとなってしまう理由は下のリンクより

    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 表示できる限界(bound)のサイズ
        let BoundSize_w: CGFloat = UIScreen.mainScreen().bounds.width  //横幅
        let BoundSize_h: CGFloat = UIScreen.mainScreen().bounds.height //縦幅
        print("\(BoundSize_w),\(BoundSize_h)")  //iPhone6の場合375.0,667.0と出力

        
        // UIImageViewという画像を表示させる画面を作る
        ImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: BoundSize_w, height: BoundSize_h)) //BoundSize_wは375.0と同じ、BoundSize_hは667.0と同じ
        
        
        // 画像をUIImageViewの画像を表示させるメソッド(.image)に入れる
        ImageView.image = UIImage(named: "figure_happy.png")  //(named:"ここに画像ファイル名")
        
        // 画像の表示する座標を指定する.
        ImageView.layer.position = CGPoint(x: BoundSize_w/2, y:BoundSize_h/2)
        
        // 画像を表示させる画面(UIImageView)を画面 (View)に追加する.
        view.addSubview(ImageView)
        
    }
}

!を入れないとエラーになる理由:kichie-com.hatenablog.com
f:id:kichie_com:20151223201647p:plain
こうなればOKです。




ちなみに画像を表示する画面(UIImageView)の大きさの縦幅を半分にすると

import UIKit

class ViewController: UIViewController {
    
    var ImageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 表示できる限界(bound)のサイズ
        let BoundSize_w: CGFloat = UIScreen.mainScreen().bounds.size.width
        let BoundSize_h: CGFloat = UIScreen.mainScreen().bounds.size.height
        print("\(BoundSize_w),\(BoundSize_h)")
        
        
        // UIImageViewという画像を表示させる画面を作る
        ImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: BoundSize_w, height: BoundSize_h/2))
        
        
        // 画像をUIImageViewの画像を表示させるメソッド(.image)に入れる
        ImageView.image = UIImage(named: "figure_happy.png")  //UIImage(named:"ここに画像ファイル名")
        
        // 画像の表示する座標を指定する.
        ImageView.layer.position = CGPoint(x: BoundSize_w/2, y: BoundSize_h/2)←←←←←ここ変えただけ
        
        // 画像を表示させる画面(UIImageView)を画面 (View)に追加する.
        view.addSubview(ImageView)
        
    }
}

f:id:kichie_com:20151223201654p:plain
こうなります。


サイズは数字なので足したり引いたりして自由に操れます。



詳しい端末ごとの画面サイズについては下記のリンクにあります。
参考サイト:
011 画面サイズを取得する - Swift Docs
005 UIImageViewで画像を表示 - Swift Docs


ちょっと一言

記憶したことを思い出すには様々な道を用意しておくとたどり着きやすい。