gpt4 book ai didi

objective-c - 点不在 Rect 但 CGRectContainsPoint 说是

转载 作者:太空狗 更新时间:2023-10-30 03:56:00 26 4
gpt4 key购买 nike

如果我有一个 UIImageView 并且想知道用户是否点击了图像。在 touchesBegan 中,我执行以下操作但总是以第一个条件结束。窗口处于纵向模式,图像位于底部。我可以点击窗口的右上角,仍然进入第一种情况,这似乎很不正确。

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

if(CGRectContainsPoint(myimage.frame, location) == 0){
//always end up here
}
else
{ //user didn't tap inside image}

值是:

location: x=303,y=102
frame: origin=(x=210,y=394) size=(width=90, height=15)

有什么建议吗?

最佳答案

首先,您要接触:

UITouch *touch = [[event allTouches] anyObject];

接下来,您要检查相对于 ImageView 的 locationInView。

CGPoint location = [touch locationInView:self]; // or possibly myimage instead of self.

接下来,CGRectContainsPoint 返回一个 bool 值,因此将它与 0 进行比较是非常奇怪的。应该是:

if ( CGRectContainsPoint( myimage.frame, location ) ) {
// inside
} else {
// outside
}

但是,如果 self 不是 myimage,那么 myimage View 可能会代替您进行触摸 - 从您的问题中不清楚 self 是什么对象,它不是所讨论的 UIImageView 的子类。

关于objective-c - 点不在 Rect 但 CGRectContainsPoint 说是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/979620/

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