Ich mache dynamische UIViews
durch Code und versuchen, UITapGestureRecogniser
auf ihnen hinzuzufügen. Aber aus irgendeinem Grund reagieren sie nicht. Hier ist der Code:UITapGesture arbeitet nicht an dynamisch erstellten 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];
}
Kann jemand bitte helfen?
Dank
wird der createRandomBlock einmal aufgerufen? – George
vermutlich können Sie die Ansicht auf dem Bildschirm sehen? Welche anderen Gesten sind auf der Ansicht und der Superview? – Wain
createRandomBlock wird mit einem Timer mit einer Verzögerung von 3 Sekunden aufgerufen. Auch ich benutze uiviewanimate, um die Ansicht zu animieren. –