Я делаю динамический UIViews
через код и пытаюсь добавить UITapGestureRecogniser
на них. Но по какой-то причине они не реагируют. Вот код:UITapGesture не работает на динамически созданных UIViews
-(void)createRandomBlock{
UIView * block = [[UIView alloc] initWithFrame:CGRectMake([self getRandomPosition], 0-_heightOfBlock, _widthOfBlock, _heightOfBlock)];
block.backgroundColor = [self randomColor];
block.userInteractionEnabled=YES;
UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(blockTapped:)];
tapGesture.delegate = self;
tapGesture.numberOfTouchesRequired = 1;
tapGesture.numberOfTapsRequired=1;
[block addGestureRecognizer:tapGesture];
[self.view addSubview:block];
[UIView animateWithDuration:_durationOfAnimation delay:0.0 options:options animations:^{
[block setFrame:CGRectMake(block.frame.origin.x, ScreenHeight, block.bounds.size.width, block.bounds.size.height)];
} completion:^(BOOL finished) {
[block removeFromSuperview];
}];
}
-(void)blockTapped:(UITapGestureRecognizer*)gesture{
NSLog(@"I am being called?");
UIView * block = (UIView*)[gesture view];
[block removeFromSuperview];
}
Может кому-то помочь?
Thanks
- это createRandomBlock, вызываемый один раз? – George
Предположительно вы можете увидеть представление на экране? какие другие жесты на вид и надзор? – Wain
createRandomBlock вызывается с использованием таймера с задержкой в 3 секунды. Кроме того, я использую uiviewanimate для анимации представления. –