我想将图像平移到屏幕中的任意位置?我应该怎么办?
我想做一个项目,用户要求将图像放置在屏幕上的任何位置,并且该图像应该在 3 秒后移动到任何位置,现在用户更改了在屏幕上随机生成动画图片的要求。
class ViewController: UIViewController {
var timer = Timer()
var imageView: UIImageView!
let imageViewWidth = CGFloat(100)
let imageViewHeight = CGFloat(100)
override func viewDidLoad() {
super.viewDidLoad()
SchedulingMethod()
}
func SchedulingMethod() {
timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(updatePosition), userInfo: nil, repeats: true)
}
@objc func updatePosition() {
let maxX = view.frame.maxX-imageViewWidth
let maxY = view.frame.maxY-imageViewHeight
let randomX = arc4random_uniform(UInt32(maxX)) + 0
let randomY = arc4random_uniform(UInt32(maxY)) + 0
print("chutiyaap")
imageView = UIImageView(frame: CGRect(x: CGFloat(randomX), y: CGFloat(randomY), width: 200, height: 200))
imageView.image = UIImage(named: "loading")
imageView.contentMode = .scaleAspectFit
for view in self.view.subviews {
view.removeFromSuperview()
}
self.view.addSubview(imageView)
}
图片应该随机平移,实际上我希望该图像在屏幕上随机移动。
最佳答案
我个人认为 CGAffineTransform 是正确的选择。
@objc func updatePosition() {
let maxX = view.frame.maxX - imageViewWidth
let maxY = view.frame.maxY - imageViewHeight
let xCoord = CGFloat.random(in: 0...maxX)
let yCoord = CGFloat.random(in: 0...maxY)
UIView.animate(withDuration: 0.3) {
imageView.transform = CGAffineTransform(translationX: xCoord, y: yCoord)
}
}
如果您需要对 ImageView 执行任何其他转换,这将为您提供良好的灵 active 。
查看:Hacking with Swifts教程
关于ios - 如何在屏幕的任意位置随机移动(平移)图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58169547/