gpt4 book ai didi

ios - 如何检查点击是否发生在特定位置

转载 作者:IT王子 更新时间:2023-10-29 05:48:46 25 4
gpt4 key购买 nike

我正在尝试检查屏幕上的特定区域是否发生了点击。我已经设置了一个 TapGestureRecognizer,这是我现在拥有的代码:

func handleTap(tap: UITapGestureRecognizer) {
var point = tap.locationInView(self.view)
println("tapped")

if (tap.state == UIGestureRecognizerState.Ended)
{
if (CGRectContainsPoint(self.Region.frame, point)) {
println("touch")
var y = kbHeight - textYoutube.center.y
youTextConst.constant += y
}
}
}

应用程序识别了点击但不识别特定区域的点击,代码有什么问题?

更新

我不知道这是否重要,但 Region 是一个 TextView

最佳答案

(注意:我假设 self.Region 是一个 UIView。你没有在你的问题中解释它是什么,所以我不得不猜测它可能是什么是。顺便说一句,请不要使用大写字母作为属性名称。我这样做只是为了让您轻松匹配您自己的代码。)

想想坐标系。你说

var point = tap.locationInView(self.view)

这意味着self.view的坐标系中。但如果您要调用 CGRectContainsPoint,那是错误的坐标系。在你弄清楚pointself.Region之间的关系之前,你需要让pointself在同一个坐标系中.地区:

point = self.Region.convertPoint(point, fromView:self.view)

现在可以使用self.Region.bounds,它与point的新值在同一个坐标系中:

if CGRectContainsPoint(self.Region.bounds, point)

关于ios - 如何检查点击是否发生在特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28902985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com