UIImageの位置をコードで – Swift3.0
説明
UIImageの位置をコードで調整してみようと思います。AutoLayoutです。あ、でも多分正規な書き方ではないです。だから正確に言えば「コードでAutoLayoutの要件を満たす」ってことになると思います。ご了承ください。全ての端末で同じように、UIimageのx軸を画面の中心に、y軸は一番下から50ポイント上部に表示されるようにします。
画像を常にどの端末からでも一番下から50pt上の場所に表示させる実装のロジックは、まずは画面の縦幅の大きさを取得して、その画面の縦幅の大きさから、画像の大きさを引いてあげればいいです。
環境
- AutoLayout
- Xcode
- Xcode9
- swift
- swift3.0
- UIImage
- uiimage
- code
- コード
Assets.xcassetsに画像を入れないと落ちます
実行
iPhone x
iPhone SE
実装
//
// 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.
}
}