Есть ли сенсорный метод для UILabel?
Я хотел бы сделать какое-либо действие, если кто-то коснется предварительно объявленного UILabel
, что-то вроде:
if (label is touched) {
my actions;
}
Есть ли способ/способ сделать это?
Ответы
Ответ 1
Вы можете использовать распознаватель жестов:
- (void)someSetupMethod {
// ...
label.userInteractionEnabled = YES;
UITapGestureRecognizer *tapGesture = \
[[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(didTapLabelWithGesture:)];
[label addGestureRecognizer:tapGesture];
[tapGesture release];
}
- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
// ...
}
Ответ 2
По умолчанию UILabel
не настроен для приема сенсорного ввода. Однако, если вы вместо этого используете UIButton
и установите для него свой внешний вид, вы можете сделать его похожим на (однострочный) ярлык и реагировать на события касания.
Ответ 3
Вы можете подклассифицировать его и переопределить методы касания. Вероятно, вы хотите переопределить touchesEnded:withEvent:
.
Или просто используйте UIButton.
Ответ 4
Вам нужно убедиться, что userinteractionenabled установлен в YES, а затем вы можете переопределить touchesBegan:withEvent:
Ответ 5
Просто добавьте категорию для класса UILabel и добавьте к ней свой метод.