UIView.animateWithDuration swift循环animation
我完全是Xcode的新手,并试图学习Swift。
在ViewController.Swift中,我设法使一个盒子从一个点变成另一个点。 我认为这个循环会很容易,所以盒子会animation到一个点,然后animation回到原来的位置,然后再循环。 我已经设法将对象移动到一个位置,并在“完成”再次移动它,但是这不会使我循环。 这怎么能实现?
我想也许这可以工作,但我真的不知道:
let boxmoves = [CGRect(x: 120, y: 220, width: 100, height: 100), CGRect(x: 120, y: 120, width: 100, height: 100)] for boxmove in boxmoves { coloredSquare.frame = boxmove }
我怎么能基于设备宽度(我假设有一些math涉及?)?
Xcode的任何好的新手指定网站推荐?
亲切的问候Johan
我的代码:
let coloredSquare = UIView() coloredSquare.backgroundColor = UIColor.blueColor() coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100) self.view.addSubview(coloredSquare) // found repeate but this will not animate as I want. //UIView.animateWithDuration(2.0, delay: 0.2, options: UIViewAnimationOptions.Repeat, animations: { UIView.animateWithDuration(2.0, animations: { coloredSquare.frame = CGRect(x: 120, y: 220, width: 100, height: 100) }, completion: { finished in UIView.animateWithDuration(2.0, animations: { coloredSquare.frame = CGRect(x: 120, y: 120, width: 100, height: 100) }) })
不需要完成块的方法,只需使用animation选项参数:
更新了Swift 3.0
UIView.animate(withDuration: 2.0, delay: 0, options: [.repeat, .autoreverse], animations: { coloredSquare.frame = CGRect(x: 120, y: 220, width: 100, height: 100) }, completion: nil)
如果因为某种原因想要稍后停止animation,请使用:
coloredSquare.layer.removeAllAnimations()
- Swift:我如何将一个NSIndexPath绑定到一个addTarget
- 无法将types'NSRange'(aka'_NSRange')的值转换为期望的types'Range <Index>'(又名'Range <String.CharacterView.Index>')
- 应用程序架构,当'状态改变'APNS失败
- iOS Swift:当我滚动Tableview数据时会消失
- 致命错误:使用未实现的初始化'init(realm:schema :)'
- Swift:使控制button不能随相机移动
- 如何将底部边框添加到tableview部分标题
- Firebase iOS Swift致命错误:NSArray元素无法与Swift数组元素types匹配
- 如何在Core Data上下文之外使用Core Data模型子类?