如何检测 UI 图像上的触摸?

Posted

技术标签:

【中文标题】如何检测 UI 图像上的触摸?【英文标题】:How do i detect a touch on a UI image? 【发布时间】:2015-11-18 01:03:12 【问题描述】:

我正在制作一个单视图应用程序,我希望 UI 图像从屏幕的一侧移动到另一侧。我想检测此图像上的触摸。我无法使用按钮,因为我无法使按钮移动。更精确:当我单击 UI 图像时,我希望显示一个标签并且不再隐藏。我不能使用 UI 按钮,因为当我单击图像时,图像会移动,按钮无法移动。我希望这更清楚。 这是到目前为止的代码:

@IBAction func Start1(sender: UIButton) 
Person1.center = CGPointMake(160, 450) ;
[UIView.animateWithDuration(3,
    animations:  self.Person1.center = CGPointMake(160, 70 )
)];

@IBOutlet var Person1: UIImageView!

谢谢

【问题讨论】:

***.com/questions/19611601/… 答案在objective-c中,但从我所见的swift来看,方法是一样的。只需转换语法。 为什么按钮不能动? 【参考方案1】:

据我了解,您希望在屏幕上使用滑动手势。 这是添加滑动手势的代码

UISwipeGestureRecognizer *swipeRightBlack = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(slideToRightWithGestureRecognizer:)];
    swipeRightBlack.direction = UISwipeGestureRecognizerDirectionRight;
    [self.viewBlack addGestureRecognizer:swipeRightBlack];

如果你也想添加单点触控手势。

UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)];

这是在您的项目中添加different gesture 的一个很好的解释。

【讨论】:

【参考方案2】:

我不太清楚我明白你的意思,但是如果你想让图片自动从一个位置移动到另一个位置,你可以直接写两个点,然后去动画就实现了。或者你想拖动动态图像,那么你需要在UIImageView上添加一个拖动手势UIPanGestureRecognizer,然后根据拖动位置得到图片移动。

【讨论】:

对不起...谢谢您的回复,让我更好地向您解释。 当我点击 UI 图像时,我想要一个标签显示并且不再被隐藏。我不能使用 UI 按钮,因为当我单击图像时,图像会移动,按钮无法移动。我希望这更清楚。 其实我觉得两个方案都行。可以使用按钮。因为按钮本身有点击手势事件,你可以去相应地重写这个事件活动。或者您可以使用标签来显示和隐藏。这是绝对的,如果您的代码没有实现该行为,那么请仔细查看代码。

以上是关于如何检测 UI 图像上的触摸?的主要内容,如果未能解决你的问题,请参考以下文章

如何在(libgdx)阶段检测对图像透明区域的触摸?

iPhone 检测地图图像上的触摸

混合图层图像Android上的触摸事件

带有检测触摸的图像视图的 UIScrollView

Touchesbegin没有检测到被触摸的东西

Xcode Swift - 检测屏幕上颜色的触摸