Подтвердить что ты не робот

Есть ли сенсорный метод для UILabel?

Я хотел бы сделать какое-либо действие, если кто-то коснется предварительно объявленного UILabel, что-то вроде:

if (label is touched) {
    my actions;
}

Есть ли способ/способ сделать это?

4b9b3361

Ответ 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 и добавьте к ней свой метод.