zoukankan      html  css  js  c++  java
  • Swift

    import UIKit

    class FatherView: UIView {

        override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {

            print("Detect Touch Event")

            if (self.hidden == false) && (alpha > 0) {            

                for subview in subviews {

                    if CGRectContainsPoint(subview.frame, point) {

                        if subview.isKindOfClass(ChildView1) {

                            print("view 1")

                            return subview

                        }

                        if subview.isKindOfClass(ChildView2) {

                            print("view 2")

                            return subview

                        }

                    }

                }

            }        

            return nil

        }

    }

    import UIKit

    class ChildView1: UIView {}

    import UIKit

    class ChildView2: UIView {}

    import UIKit

    class ViewController: UIViewController {

        let father = FatherView()

        let child1 = ChildView1()

        let child2 = ChildView2()

        let child3 = ChildView2()

        

        override func viewDidLoad() {

            super.viewDidLoad()

            

            father.frame = CGRectMake(0, 0, 100, 100)

            child1.frame = CGRectMake(20, 20, 20, 20)

            child2.frame = CGRectMake(120, 120, 120, 120)

            child3.frame = CGRectMake(200, 200, 120, 120)

            

    //        father.clipsToBounds = true

            father.backgroundColor = UIColor.grayColor()

            child1.backgroundColor = UIColor.redColor()

            child2.backgroundColor = UIColor.blueColor()

            child3.backgroundColor = UIColor.greenColor()

            

            view.addSubview(father)

            father.addSubview(child1)

            father.addSubview(child2)

            father.addSubview(child3)

            

            child1.addGestureRecognizer(

                UITapGestureRecognizer(target: self, action: #selector(touchTest1)))

            

            child2.addGestureRecognizer(

                UITapGestureRecognizer(target: self, action: #selector(touchTest2)))

            

            child3.addGestureRecognizer(

                UITapGestureRecognizer(target: self, action: #selector(touchTest3)))

        }

        override func didReceiveMemoryWarning() {

            super.didReceiveMemoryWarning()

        }

        func touchTest1() {

            print("test 1 ")

        }

        func touchTest2() {

            print("test 2 ")

        }

        func touchTest3() {

            print("test 3 ")

        }

    }

  • 相关阅读:
    Java LinkedHashMap 逆序遍历
    (java/javascript) list 交集 并集 差集 去重复并集
    Map集合的四种遍历方式(转载)
    本地jar包 安装到本地仓库中的命令
    BigDecimal加减乘除运算(转)
    反射与内置方法
    项目二:选课系统
    绑定方法与非绑定方法
    多态性与鸭子类型
    继承与派生
  • 原文地址:https://www.cnblogs.com/gongyuhonglou/p/6649666.html
Copyright © 2011-2022 走看看