ios - 如何在屏幕的任意位置随机移动(平移)图片?

标签 ios swift random imageview motion

我想将图像平移到屏幕中的任意位置?我应该怎么办?

我想做一个项目,用户要求将图像放置在屏幕上的任何位置,并且该图像应该在 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/

相关文章:

ios - 为什么文档说使用 vDSP_DFT 而不是 FFT

ios - 我如何在堆栈 View 中找到 View 的 super View /父 View Controller

let (hello, world) :(String, String) = ("hello","world") 的 Swift 语法

java - 在android中创建一个随机数并将其保存到android数据库中?

c++ - 随机数生成器 (rand) 不是随机的吗?

ios - iOS 8.2 模拟器运行时在 Xcode 7 上不可用

android - Facebook 帐户套件

ios - 当物理体没有 collisionBitMask 时,usePreciseCollisionDetection 属性是否起作用

swift - 添加、更新或删除新日期时 Firebase 复制 tableView

javascript - 为什么这个坐标返回函数有时会返回超出其假定限制的坐标?