我想从顶部到底部移动40,40像素的正方形,然后在3秒钟内重复该动作。我会把整个东西放在viewcontroller里?没有开始按钮,我会在viewdidload中输入吗?
到目前为止,我有这个
UIView.animateWithDuration(0.2, animations: {
}, completion: {
})
从某个地方开始。我会将图像设置为等于UIView吗?它应该是什么样的?图像被称为mrock。 我尝试在动画部分使用blank.moveToPoint(CGPoint(x:0,y:0)),但是我不需要A UIBezierPath的东西吗?
答案 0 :(得分:0)
首先,考虑将动画放在constant
中,然后在{{1}}中根据需要将其停用。
其次,如果您正在使用自动布局,则可能需要为相关约束创建{{1}}并为约束的{{1}}属性设置动画,而不是直接为视图对象的位置设置动画
答案 1 :(得分:0)
正如@picciano所说,如果您使用的是故事板,则应该IBOutlet
到UIImageView
。所以你在视图控制器中你可以尝试这样的事情:
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//'img' is a picture imported in your project
self.imageView.image = UIImage(named: "img")
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let newPos: CGFloat = 300.0
UIView.animateWithDuration(1.0, animations: { () -> Void in
self.imageView.frame = CGRectMake(0, newPos, CGFloat(self.imageView.bounds.size.width), CGFloat(self.imageView.bounds.size.height))
})
}