iOS 不規則按鈕點擊事件(二)

目標:一個正方形視圖被分割成兩個不規則視圖

兩個不規則圖形.png

代碼操作:我用了兩個view 分別繪制成了兩個不規則圖形,其中兩個不規則圖形的view實際大小是紅色區域大小
現在我讓兩個不規則圖形都向self.view.center移動到達黃色區域位置


移動后.png

注意

雖然可以通過上篇中提到的在touchBegan中判斷當前touch點是否在不規則圖形的path中但是當兩個視圖移動后 ,由于視圖實際大小都是正方形大小,所以一定有一個在上層有一個在下層,這回導致有一個圖形可以點,另一個不可點。

解決辦法

重寫view的pointinside方法這個方法決定了是否響應事件,只需在方法中判斷當前點是否在path中就可以 ,如果不在就不響應,根據事件傳遞鏈,它會自動找下一層視圖看下一層視圖是否能響應

 override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        if marginalPath.contains(point)
        {
            return true
        }
        else
        {
            return false
        }
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 翻譯自“Auto Layout Guide”。 2 自動布局細則手冊 2.1 堆棧視圖 接下來的章節展示了如何使用...
    lakerszhy閱讀 1,895評論 3 9
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 在iOS開發中經常會涉及到觸摸事件。本想自己總結一下,但是遇到了這篇文章,感覺總結的已經很到位,特此轉載。作者:L...
    WQ_UESTC閱讀 6,118評論 4 26
  • 下午一口氣睡了6個小時,現在是有點睡不著了。剛剛看到前同事發了一個朋友圈,大概是她離開了那個公司。從她前幾天...
    等我胖了再揍你啊閱讀 485評論 0 0
  • 今天弟弟期末考試,六年級,考完出來,說:書本上考的很少,大部分都是課外閱讀書上的。“你不會?”“會呀,太簡單...
    奧特曼8閱讀 426評論 0 1