我有一个UIView子类,并添加了touchesBegan和touchesEnd方法.
在touchesBegan中,我使用self.backgroundColor = [UIColor greenColor]将backgroundColor从白色设置为绿色.在touchesEnd中,我将颜色重置为白色。
它工作得很慢。通过点击视图,我需要0.5秒-1.0秒才能看到绿色。
在UITableView中选择一个单元格要快得多。
发布于 2015-08-05 10:04:43
试试这个:
self.view.userInteractionEnabled = YES;
UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(doCallMethod:)];
recognizer.delegate = self;
recognizer.minimumPressDuration = 0.0;
[self.view addGestureRecognizer:recognizer];
- (void)doCallMethod:(UILongPressGestureRecognizer*)sender {
if(sender.state == UIGestureRecognizerStateBegan){
NSLog(@"Begin");
self.view.backgroundColor = [UIColor greenColor];
}else if (sender.state == UIGestureRecognizerStateEnded){
NSLog(@"End");
self.view.backgroundColor = [UIColor whiteColor];
}
}注意:会工作得更快。
发布于 2015-08-05 09:58:33
您应该按照TheBurgerShot的建议使用手势识别器,但我建议您使用UILongPressGestureRecognizer。类似于:
UILongPressGestureRecognizer *gesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(changeColor:)];
gesture.minimumPressDuration = 0.f;
[self.yourView addGestureRecognizer:gesture];在你的viewDidLoad里。和:
-(void) changeColor:(UIGestureRecognizer *)gestureRecognizer{
if (gestureRecognizer.state == UIGestureRecognizerStateBegan){
self.yourView.backgroundColor = [UIColor greenColor];
}
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded){
self.yourView.backgroundColor = [UIColor whiteColor];
}
}https://stackoverflow.com/questions/31828857
复制相似问题