UIScrolllView и кнопка информации - PullRequest
0 голосов
/ 10 марта 2012

У меня есть пользовательский UIViewController, который выглядит следующим образом.

@implementation UIViewControllerCustom


- (id)init
{
    self = [super init];
    if (self) {
        NSLog(@"init");
    }

    return self;
}



-(void)viewDidLoad
{
    [super viewDidLoad];
    UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
    [infoButton setFrame:CGRectMake(290, 10, 16, 16)];
    [infoButton addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:infoButton];
}

-(void)showInfo
{
    About *about = [[About alloc]init];
    NSLog(@"touched");
    [about setModalTransitionStyle:UIModalPresentationFullScreen];
    [self presentModalViewController:about animated:YES];
}

@end

Любой контроллер представления в моем приложении наследует этот контроллер.При нажатии информационной кнопки появляется модальное окно.Проблема в том, что один из моих контроллеров представления использует UIScrollView.В этом контроллере видна информационная кнопка, которая реагирует на прикосновения.Проблема в том, что когда я касаюсь кнопки showInfo, метод UIViewControllerCustom не вызывается.У меня нет такой проблемы в другом контроллере.Что здесь может быть не так?

1 Ответ

1 голос
/ 10 марта 2012

Поскольку UIScrollView обрабатывает отправляемое сообщение.В вашем случае касание кнопки будет обрабатываться UIScrollView.

Я бы предложил вам создать подкласс UIScrollView и реализовать: - (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view, чтобы определить, должен ли UIScrollView обрабатывать событие или нет.

Реализация может быть чем-то вроде:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view {
    if ([view isKindOfClass:[UIButton class]]) {
        return NO;
    }

    return YES;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...