翻译UIView并设置标签文本

时间:2015-05-24 14:27:18

标签: ios objective-c uiview uilabel uipangesturerecognizer

我开始学习iOS手势识别器,完成本教程http://www.appcoda.com/ios-gesture-recognizers/。在将UIPanGestureRecognizer'文本设置为手势的速度时,使用UILabels翻译视图时出现问题。

我已经成功地用这样的平移手势翻译视图(在IB的帮助下):

PanViewController.h

@interface PanViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIView *testView;

@property (weak, nonatomic) IBOutlet UILabel *horizontalVelocityLabel;

@property (weak, nonatomic) IBOutlet UILabel *verticalVelocityLabel;

@end

PanViewController.m

@interface PanViewController ()

- (void)moveViewWithGestureRecognizer:(UIPanGestureRecognizer *)panGestureRecognizer;

@end

@implementation PanViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveViewWithGestureRecognizer:)];
    [self.testView addGestureRecognizer:panGestureRecognizer];

}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)moveViewWithGestureRecognizer:(UIPanGestureRecognizer *)panGestureRecognizer {
    CGPoint touchLocation = [panGestureRecognizer locationInView:self.view];

    self.testView.center = touchLocation;
}

但是当我向这个方法添加以下行时,视图会停止翻译,但UILabels会以速度更新:

CGPoint velocity = [panGestureRecognizer velocityInView:self.view];

self.horizontalVelocityLabel.text = [NSString stringWithFormat:@"Horizontal Velocity: %.2f points/sec", velocity.x];
self.verticalVelocityLabel.text = [NSString stringWithFormat:@"Vertical Velocity: %.2f points/sec", velocity.y];

我想了解我做错了什么。我该如何解决? 提前谢谢。

0 个答案:

没有答案