在我的应用程序中,我创建了一个UiLabel。我必须根据触摸手势向右移动标签,就像滑出菜单一样。请帮帮我。
发布于 2013-01-21 15:49:51
您可以使用UITapGestureRecognizer:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[label addGestureRecognizer:singleTap];然后在你的方法中使用UIViewAnimation:
- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
CGRect frame = label.frame;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
frame.origin.x += 100; // slide right
label.frame = frame;
[UIView commitAnimations];
}发布于 2013-01-21 15:51:06
假设UILabel插座名称正在测试。
// set up geture as follows in view did load
UISwipeGestureRecognizer* swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(labelDidSwiped:)];
[swipeGesture setDirection: UISwipeGestureRecognizerDirectionLeft];
[testing addGestureRecognizer:swipeGesture];
swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(labelDidSwiped:)];
[swipeGesture setDirection:UISwipeGestureRecognizerDirectionRight];
[testing addGestureRecognizer:swipeGesture];
-(void)labelDidSwiped:(UISwipeGestureRecognizer*)gesture
{
switch (gesture.direction) {
case UISwipeGestureRecognizerDirectionLeft:
// you can change the frame of label in here depending on your requirement
DLog(@"left swipe");
break;
case UISwipeGestureRecognizerDirectionRight:
// you can change the frame of label in here depending on your requirement
break;
default:
break;
}
}发布于 2013-01-21 15:52:59
使用CGPointMake函数提供位置
label.position = CGPointMake (newX, newY);
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
animation.duration = <duration>;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
animation.fromValue = CGPointMake (oldX, oldY);
animation.toValue = CGPointMake (newX, newY);
[label addAnimation:animation forKey:@"position"];https://stackoverflow.com/questions/14434301
复制相似问题