簡體   English   中英

如何僅從該UIView的特定區域拖動UIView?

[英]How can I drag my UIView only from a specific area of this UIView?

這是我想要的UIView。 它的大部分將被隱藏,並且只能通過拖動小的可見部分將其拖出。

在此處輸入圖片說明

我考慮過將視圖繪制成可以說其容器的90%,然后在頂部繪制一個小矩形(可見部分),但是我遇到了兩個問題:

  • 我可以通過拖動視圖的任何可見部分(而不僅僅是小矩形)來拖動視圖,然后
  • 我需要能夠在隱藏視圖的可見部分(小矩形除外)之后查看/交互視圖

我該如何實現?

覆蓋pointInside:withEvent:當該點位於您不想接收觸摸的視圖部分時,返回false。

您可以使用panGesture,在shouldReceiveTouch檢查觸摸點。

例如

class ViewController: UIViewController,UIGestureRecognizerDelegate {
var panGestureRecognizer:UIPanGestureRecognizer?
override func viewDidLoad() {
    panGestureRecognizer = UIPanGestureRecognizer(target: self, action: "gestureRecognizer:");
    self.view.userInteractionEnabled = true
    self.view.addGestureRecognizer(panGestureRecognizer!)
}
func catchedPan(gesture:UIPanGestureRecognizer){
    switch gesture.state{
    case .Began:

    case .Changed:
        //Change frame here
    case .Ended:
    default:
    }
}
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    if(gestureRecognizer == panGestureRecognizer){
        let point = touch.locationInView(self.view);
        if (point inside your area){
            return true
        }else{
            return false
        }
    }

}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM