将UILabel移动到iOS中的触摸位置

时间:2016-05-02 14:29:59

标签: ios objective-c position touch uilabel

我的屏幕上显示了一个图像,我希望能够选择图像的任何部分并获得该点的(x,y)坐标,并显示带有我触摸的点的标签和坐标就在旁边。

我的问题是这个。我可以适当地触摸和更改坐标文本,但是在第一次触摸时它不会移动标签的实际位置。如果我在完全相同的位置触摸两次,它确实移动到适当的位置。如果我只触摸一次,它会将它移回原来的位置。

以下是我用于触摸的代码块:

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:nil];
    _coordinatesLabel.center = CGPointMake(location.x + 83, location.y - 4);
    _coordinatesLabel.text = [NSString stringWithFormat:@"•  (%.2f,%.2f)", location.x/32, (768-location.y)/32];
}

修改

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    CGPoint location = [touch locationInView:nil];

    _coordinatesLabel.translatesAutoresizingMaskIntoConstraints = true;

    _coordinatesLabel.center = CGPointMake(location.x + 83, location.y - 4);
    _coordinatesLabel.text = [NSString stringWithFormat:@"•  (%.2f,%.2f)", location.x/32, (768-location.y)/32];

}

我添加了中间代码,它完美无缺。谢谢你的帮助。

0 个答案:

没有答案