[iOS] 임의의 좌표에 UIImage 생성
버전
Swift 5.3
Xcode 12.1
이 기사에서 언급
화면 중간에 이미지 배치
우선, 코드로부터 정해진 위치에 화상을 배치합니다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// UIImageの初期化
let image: UIImage = UIImage(named: "ninja")!
// UIImageViewの初期化
let imageView = UIImageView(image: image)
// 画面の縦幅・横幅を取得
let viewWidth: CGFloat = view.frame.size.width
let viewHeight: CGFloat = view.frame.size.height
// 画像に設定したい縦・横幅を変数に格納
let imageWidth: CGFloat = 100
let imageHeight: CGFloat = 100
// 画像の座標・大きさを生成
let rect: CGRect = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
// 指定した座標・大きさを設定
imageView.frame = rect;
// 画像を画面の中央を指定
imageView.center = CGPoint(x: viewWidth / 2, y: viewHeight / 2)
// viewにUIImageViewを追加
self.view.addSubview(imageView)
}
}
코드만으로 이미지가 중간에 배치되었습니다. 귀엽다.
무작위 좌표로 이미지 생성
CGPoint의 좌표는 CGFloat를 인수에 취하므로,
CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
로 임의의 좌표를 생성할 수 있다.
그래서 위 화면의 중간에 이미지를 생성하는 코드
imageView.center = CGPoint(x: viewWidth / 2, y: viewHeight / 2)
부분을
imageView.center = CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
이렇게하면 무작위 좌표로 이미지가 생성됩니다.
첫째, 이제는 ViewDidLoad에 이미지 생성 코드를 작성하고 있기 때문에 함수로 요약합니다.
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func generateUIIMageVIew() -> Void {
// UIImageの初期化
let image: UIImage = UIImage(named: "ninja")!
// UIImageViewの初期化
let imageView = UIImageView(image: image)
// 画面の縦幅・横幅を取得
let viewWidth: CGFloat = view.frame.size.width
let viewHeight: CGFloat = view.frame.size.height
// 画像に設定したい縦・横幅を変数に格納
let imageWidth: CGFloat = 100
let imageHeight: CGFloat = 100
// 画像の座標・大きさを生成
let rect: CGRect = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
// 指定した座標・大きさを設定
imageView.frame = rect;
// 画像を画面の中央を指定
imageView.center = CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
// viewにUIImageViewを追加
self.view.addSubview(imageView)
}
버튼 추가
그리고 버튼과 연결합니다.
그러면 이런 식으로 버튼을 누를 때마다 이미지가 무작위 위치에서 생성되었습니다. 대단해
일정한 시간에 이미지가 생성되도록
Timer를 사용하여 초당 이미지를 생성합니다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// UIImageの初期化
let image: UIImage = UIImage(named: "ninja")!
// UIImageViewの初期化
let imageView = UIImageView(image: image)
// 画面の縦幅・横幅を取得
let viewWidth: CGFloat = view.frame.size.width
let viewHeight: CGFloat = view.frame.size.height
// 画像に設定したい縦・横幅を変数に格納
let imageWidth: CGFloat = 100
let imageHeight: CGFloat = 100
// 画像の座標・大きさを生成
let rect: CGRect = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
// 指定した座標・大きさを設定
imageView.frame = rect;
// 画像を画面の中央を指定
imageView.center = CGPoint(x: viewWidth / 2, y: viewHeight / 2)
// viewにUIImageViewを追加
self.view.addSubview(imageView)
}
}
CGPoint의 좌표는 CGFloat를 인수에 취하므로,
CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
로 임의의 좌표를 생성할 수 있다.
그래서 위 화면의 중간에 이미지를 생성하는 코드
imageView.center = CGPoint(x: viewWidth / 2, y: viewHeight / 2)
부분을
imageView.center = CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
이렇게하면 무작위 좌표로 이미지가 생성됩니다.
첫째, 이제는 ViewDidLoad에 이미지 생성 코드를 작성하고 있기 때문에 함수로 요약합니다.
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func generateUIIMageVIew() -> Void {
// UIImageの初期化
let image: UIImage = UIImage(named: "ninja")!
// UIImageViewの初期化
let imageView = UIImageView(image: image)
// 画面の縦幅・横幅を取得
let viewWidth: CGFloat = view.frame.size.width
let viewHeight: CGFloat = view.frame.size.height
// 画像に設定したい縦・横幅を変数に格納
let imageWidth: CGFloat = 100
let imageHeight: CGFloat = 100
// 画像の座標・大きさを生成
let rect: CGRect = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
// 指定した座標・大きさを設定
imageView.frame = rect;
// 画像を画面の中央を指定
imageView.center = CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
// viewにUIImageViewを追加
self.view.addSubview(imageView)
}
버튼 추가
그리고 버튼과 연결합니다.
그러면 이런 식으로 버튼을 누를 때마다 이미지가 무작위 위치에서 생성되었습니다. 대단해
일정한 시간에 이미지가 생성되도록
Timer를 사용하여 초당 이미지를 생성합니다.
로 구현할 수 있습니다.
var generateImageTimer = Timer()
override func viewDidLoad() {
super.viewDidLoad()
generateImageTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(generateUIIMageView), userInfo: nil, repeats: true)
}
@objc func generateUIIMageView() -> Void {
// UIImageの初期化
let image: UIImage = UIImage(named: "ninja")!
// UIImageViewの初期化
let imageView = UIImageView(image: image)
// 画面の縦幅・横幅を取得
let viewWidth: CGFloat = view.frame.size.width
let viewHeight: CGFloat = view.frame.size.height
// 画像に設定したい縦・横幅を変数に格納
let imageWidth: CGFloat = 100
let imageHeight: CGFloat = 100
// 画像の座標・大きさを生成
let rect: CGRect = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
// 指定した座標・大きさを設定
imageView.frame = rect;
// 画像を画面の中央を指定
imageView.center = CGPoint(x: CGFloat.random(in: 0...viewWidth), y: CGFloat.random(in: 0...viewHeight))
// viewにUIImageViewを追加
self.view.addSubview(imageView)
}
자동으로 마음대로 이미지가 생성됩니다. 멋지다!
참고문헌
Reference
이 문제에 관하여([iOS] 임의의 좌표에 UIImage 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tanaka-tt/items/1d06664c7b60cfcd4009텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)