UIImageの位置をコードで – Swift3.0

説明

UIImageの位置をコードで調整してみようと思います。AutoLayoutです。あ、でも多分正規な書き方ではないです。だから正確に言えば「コードでAutoLayoutの要件を満たす」ってことになると思います。ご了承ください。全ての端末で同じように、UIimageのx軸を画面の中心に、y軸は一番下から50ポイント上部に表示されるようにします。

画像を常にどの端末からでも一番下から50pt上の場所に表示させる実装のロジックは、まずは画面の縦幅の大きさを取得して、その画面の縦幅の大きさから、画像の大きさを引いてあげればいいです。

環境

  • AutoLayout
  • Xcode
  • Xcode9
  • swift
  • swift3.0
  • UIImage
  • uiimage
  • code
  • コード

Assets.xcassetsに画像を入れないと落ちます

スクリーンショット 2017-10-01 14.33.54.png

実行

iPhone x

スクリーンショット 2017-10-01 15.30.00.png

iPhone SE

スクリーンショット 2017-10-01 15.30.43.png

実装

//
//  ViewController.swift
//  Aoutlayout-uiimage
//
//  Created by ryosuke-hujisawa on 2017/10/01.
//  Copyright © 2017年 ryosuke-hujisawa. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // UIImage インスタンスの生成
        let image1:UIImage = UIImage(named:"am.jpg")!
        // UIImageView 初期化
        let imageView = UIImageView(image:image1)
        // 画面の縦横幅を取得
        let screenWidth:CGFloat = view.frame.size.width
        //iew.frame.size.heightが画像を一番下に(見えなくなる)
        //-screenWidth/2-50で画像を下から50pt上に表示
        imageView.frame = CGRect(x:0,y:view.frame.size.height-screenWidth/2-50,width: screenWidth/2, height:screenWidth/2)
        //画面中心に画像を設定
        imageView.center.x = self.view.center.x
        //imageView.center.y = self.view.center.y

        // UIImageViewのインスタンスをビューに追加
        self.view.addSubview(imageView)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}