Я поместил 2 UIImageViews друг на друга. Нижний - просто зеленое изображение, а верхний - синий. Кроме того, у меня есть UIView. Идея состоит в том, чтобы иметь возможность перетаскивать UIView вверх и вниз, и вместо того, чтобы видеть только зеленый цвет, UIView покажет нижнее изображение синего цвета внутри прямоугольника.
Я добавил в UIView Pan Gesture Recogniser, чтобы я мог перетаскивать его вверх и вниз, что прекрасно работает. Я попытался поискать в Интернете, чтобы узнать, как я могу изменить альфа зеленого изображения ТОЛЬКО внутри прямоугольника UIView, чтобы он выглядел как окно, но без какой-либо удачи. Это мой код:
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
}
}
}
Я надеюсь, что кто-то может помочь мне в правильном направлении, я не знаю, как двигаться дальше с этой точки.