Is there a touch method for UILabel?

后端 未结 5 535
不思量自难忘°
不思量自难忘° 2020-12-28 17:41

I\'d like to do an action if someone touches a predeclared UILabel, something like:

if (label is touched) {
    my actions;
}

相关标签:
5条回答
  • 2020-12-28 18:24

    You can subclass it and override the touch methods. You probably want to override touchesEnded:withEvent:.

    Or just use a UIButton.

    0 讨论(0)
  • 2020-12-28 18:27

    You need to make sure userinteractionenabled is set to YES and then you can override the touchesBegan:withEvent:

    0 讨论(0)
  • 2020-12-28 18:31

    You could use a gesture recognizer:

    - (void)someSetupMethod {
        // ...
        label.userInteractionEnabled = YES;
        UITapGestureRecognizer *tapGesture = \
        [[UITapGestureRecognizer alloc]
         initWithTarget:self action:@selector(didTapLabelWithGesture:)];
        [label addGestureRecognizer:tapGesture];
        [tapGesture release];
    }
    
    - (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
        // ...
    }
    
    0 讨论(0)
  • 2020-12-28 18:35

    By default, UILabel isn't configured to accept touch input. However, if you use a UIButton instead and set it to have a custom appearance, you can make it look like a (single-line) label and have it respond to touch events.

    0 讨论(0)
  • 2020-12-28 18:37

    Just Add A category for UILabel Class and add your method to it.

    0 讨论(0)
提交回复
热议问题