画面ぴったりに画像を出力「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
こうなれば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) } }
こうなります。
サイズは数字なので足したり引いたりして自由に操れます。
詳しい端末ごとの画面サイズについては下記のリンクにあります。
参考サイト:
011 画面サイズを取得する - Swift Docs
005 UIImageViewで画像を表示 - Swift Docs
ちょっと一言
記憶したことを思い出すには様々な道を用意しておくとたどり着きやすい。