【发布时间】:2018-04-28 19:14:55
【问题描述】:
我已将 2 个 UIImageViews 放在一起。底部的只是一个绿色图像,顶部是蓝色的。最重要的是,我有一个 UIView。这个想法是能够上下拖动 UIView,而不是只看到绿色,UIView 将在其矩形内显示底部图像,蓝色。
我在 UIView 中添加了一个平移手势识别器,这样我就可以上下拖动它,效果很好。我试图在互联网上搜索,以了解如何仅在 UIView 矩形内更改绿色图像的 alpha,使其看起来像一个窗口,但没有任何运气。到目前为止,这是我的代码:
import UIKit
class ViewController: UIViewController {
var windowViewOrigin: CGPoint!
@IBOutlet weak var topImageView: UIImageView!
@IBOutlet weak var bottomImageView: UIImageView!
@IBOutlet weak var windowView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
addPanGesture(view: windowView)
windowViewOrigin = windowView.frame.origin
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func addPanGesture(view: UIView){
let pan = UIPanGestureRecognizer(target: self, action: #selector(ViewController.handlePan(sender:)))
view.addGestureRecognizer(pan)
}
@objc func handlePan(sender: UIPanGestureRecognizer){
let window = sender.view!
let translation = sender.translation(in: view)
switch sender.state {
case .began, .changed :
windowView.center = CGPoint(x: UIScreen.main.bounds.size.width*0.5, y: window.center.y + translation.y)
sender.setTranslation(CGPoint.zero, in: view)
break
case .ended:
UIView.animate(withDuration: 0.5) {
self.topImageView.alpha = 0.0
}
break
default:
break
}
}
}
我希望有人能在正确的方向上帮助我,我不知道如何从这一点继续前进。
【问题讨论】:
标签: ios swift uiview uiimageview