如何在Xcode中制作推拉门动画



我对 Xcode 很陌生,所以这可能是我找不到的非常基本的东西,但我正在尝试创建一个应用程序,当用户点击屏幕时,将 2 张图像彼此移开(至少一个宽度(,然后在用户再次点击屏幕时让图像返回到其原始位置, 但是,我一直无法找到如何在特定方向,特定距离上移动图像。

我也是堆栈溢出的新手,所以如果我做错了什么,我很抱歉

当您似乎没有用谷歌搜索足够时,我放弃答案,从而违反了规则。一般规则是显示您尝试的代码并指出您遇到问题的部分。

下面的代码将实现您尝试执行的操作。

import UIKit
class slidingIamgesViewController: UIViewController {
@IBOutlet weak var topImage: UIImageView!
@IBOutlet weak var bottomImage: UIImageView!
var doubleTap: Bool! = false
//MARK: View LifeCycle
override func viewDidLoad() {
super.viewDidLoad()
let singleFingerTap = UITapGestureRecognizer(target: self, action: #selector(slidingIamgesViewController.handleSingleTap(_:)))
self.view.addGestureRecognizer(singleFingerTap)
}

// MARK: gestutre recognizer
func handleSingleTap(_ recognizer: UITapGestureRecognizer) {
if (doubleTap) {
UIView.animate(withDuration: 0.7, delay: 1.0, options: .curveEaseOut, animations: {
var basketTopFrame = self.topImage.frame
basketTopFrame.origin.y += basketTopFrame.size.height
var basketBottomFrame = self.bottomImage.frame
basketBottomFrame.origin.y -= basketBottomFrame.size.height
self.topImage.frame = basketTopFrame
self.bottomImage.frame = basketBottomFrame
}, completion: { finished in
print("Images Moved back!")
})
doubleTap = false
} else {
UIView.animate(withDuration: 0.7, delay: 1.0, options: .curveEaseOut, animations: {
var basketTopFrame = self.topImage.frame
basketTopFrame.origin.y -= basketTopFrame.size.height
var basketBottomFrame = self.bottomImage.frame
basketBottomFrame.origin.y += basketBottomFrame.size.height
self.topImage.frame = basketTopFrame
self.bottomImage.frame = basketBottomFrame
}, completion: { finished in
print("Images sperated!")
})
doubleTap = true
}
}
}

确保在情节提要中添加点击手势识别器。

最新更新