问题
I have a bunch of UILabels that I add through code and I want to perform a specific action for each if the user's finger touches up inside (much like UIButton's touchUpInside in IB). What is the best way of doing this?
回答1:
The easiest way is probably to use UIButton instead of UILabel. A custom UIButton has no border and can look like a plain label, but handles the event tracking for you.
Otherwise, you must derive from UILabel and implement the UIResponder calls for touch handling.
回答2:
You can use UITapGestureRecognizer to perform action over the label Fields.
Set the number of taps and touches on the UITapGestureRecognizer object.
[oneFingerTwoTaps setNumberOfTapsRequired:1];
[oneFingerTwoTaps setNumberOfTouchesRequired:1];
set user interaction of label field like
labelField.userInteractionEnabled = YES;
then add target method over the
UITapGestureRecognizer object.
来源:https://stackoverflow.com/questions/3269385/programmatically-perform-an-action-on-uilabel-touchupinside