Создание подпредставления UILabel в UIScrollView для firstResponder

Я добавил метку с некоторым текстом и ссылками на ScrollView, когда вы нажимаете на эти ссылки (в метке), вызывается метод делегата, отображается всплывающее окно и отображается некоторая связанная информация.

но проблема начинается отсюда, я хочу, когда вы нажмете где-нибудь еще, кроме ссылок, всплывающее окно исчезнет.

если я добавлю UITapGestureRecognizer в ScrollView, метод делегата для ссылок не будет вызываться.

что я должен сделать, чтобы метка обрабатывает нажатия на ссылки, а ScrollView обрабатывает другие нажатия?

Я сделал это так:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
    [self.scrollView addGestureRecognizer:tap];

- (void)tapped
{
    if ([self.storyText.delegate respondsToSelector:@selector(attributedLabel:shouldFollowLink:)])

        [self.storyText.delegate performSelector:@selector(attributedLabel:shouldFollowLink:) withObject:self.storyText];
}

В подключенном методе Im, проверяющем, нажимаю ли я на ссылку, должен вызываться делегат, но делегат не будет вызывать. Я что-то пропустил?

2 ответа

Решение

Решено! Решение: сначала я создаю собственный класс для своего scrollView и подклассирую его из UIScrollView. Во-вторых я переопределить

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

в моем собственном классе ScrollView. в этом методе я вызвал метод, чтобы отклонить поповер.

но важная часть заключается в том, что в методе viewWillAppear класса, всплывающее окно появится, я передал self в пользовательский класс scrollView. потому что, если бы я этого не сделал, метод отклонения popover не сработал бы (ему нужен объект этого класса).

[self.scrollView initWithStoryViewController:self];

введите описание изображения здесь

эти изображения показывают, в каком сценарии у меня была эта проблема:

Вы можете использовать пользовательские кнопки UIB вместо меток или можете разместить пользовательские кнопки UIB с чистым фоновым цветом над ссылками и назначить действия для этих кнопок.

Другие вопросы по тегам