UITapGestureRecognizer不工作的特定[UIView的]数组(UITapGestu

2019-09-28 09:26发布

我有以下的一段代码。 这是一个菜单(名为CarbonKit)第三方库。 当我尝试选择一个特定的段(片),并添加一个手势识别,这是行不通的。 任何想法,我做错了什么?

需要明确的是,我把一个断点在handleTap,但它甚至没有进入该功能。

    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.userInteractionEnabled = true
        let tgr : UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(OverviewFolder.handleTap(_:)))
        // segment 2 (categories)
        carbonTabSwipeNavigation.carbonSegmentedControl?.segments![2].userInteractionEnabled = true
        carbonTabSwipeNavigation.carbonSegmentedControl?.segments![2].addGestureRecognizer(tgr)
}

 // tap
    func handleTap(gestureRecognizer : UITapGestureRecognizer){
        let test = carbonTabSwipeNavigation.currentTabIndex
        if test == 2 {
            print("second item tapped")
        }
    }

Answer 1:

如果第三方UISegmentedControl就像是通用的,你已经拥有你所需要的一切。 下面是我的一些代码。 如果使用的是IB,线控制长达一个IBAction为代替。

let imageSegments = UISegmentedControl (items: ["Original","Stained"])

override func viewDidLoad() {
    super.viewDidLoad()
    imageSegments.tintColor = UIColor.yellow
    imageSegments.selectedSegmentIndex = 1
    imageSegments.addTarget(self, action: #selector(changeImageView), for: .valueChanged)
    view.addSubview(imageSegments)
}

func changeImageView() {
    switch imageSegments.selectedSegmentIndex {
    case 0:
        imageView.image = imgOriginal
    case 1:
        imageView.image = imgEdited
    default:
        break
    }
    imageView.setNeedsDisplay()
}


文章来源: UITapGestureRecognizer not working for specific [UIView] array