How to make UITableView Header selectable?

后端 未结 12 1320
执笔经年
执笔经年 2020-12-16 11:49

I have made a custom section-header for UITableView, that includes some controls like segmented control, UIImageView ,etc. It successfully appears, but it\'s not tappable so

12条回答
  •  忘掉有多难
    2020-12-16 12:39

    There is no way to do it with the UITableViewDelegate.

    You have to add a UITapGestureRecognizer to yourHeaderView Like:

    UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)];
    [singleTapRecognizer setDelegate:self];
    singleTapRecognizer.numberOfTouchesRequired = 1;
    singleTapRecognizer.numberOfTapsRequired = 1;   
    [yourHeaderView addGestureRecognizer:singleTapRecognizer];
    
    
    -(void) handleGesture:(UIGestureRecognizer *)gestureRecognizer; //do in this method whatever you want
    

    FOR Swift 3.0

    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(YOURVIEWCONTROLLER.TapGestureRecognizer(_:)))
    yourHeaderView.addGestureRecognizer(tapGesture)
    
    func TapGestureRecognizer(gestureRecognizer: UIGestureRecognizer) {
        //do your stuff here 
    }
    

    Swift >= 4.0

    Add UIGestureRecognizerDelegate class reference inherited

    let tap = UITapGestureRecognizer(target: self, action:#selector(self.handleTap(_:)))
    tap.delegate = self
    self.view.addGestureRecognizer(tap)
    
      @objc func handleTap(_ sender: UITapGestureRecognizer) {
            //Do your work 
        }
    

    may be it will help.

    Happy Coding.

提交回复
热议问题