Я попытался проверить CGRect:
CGFloat imageX1 = imageView.frame.origin.x;
CGFloat imageY1 = imageView.frame.origin.y;
CGFloat imageX2 = imageView.frame.origin.x + imageView.frame.size.width;
CGFloat imageY2 = imageView.frame.origin.y + imageView.frame.size.height;
//NSLog(@"(%f, %f) - (%f, %f)", imageX1, imageY1, imageX2, imageY2);
if(imageX1 < touchedX && touchedX < imageX2 &&
imageY1 < touchedY && touchedY < imageY2){ }
И затем я знаю, что этот тип проверки работает только тогда, когда UIImageView не был повернут / масштабирован.
Я пытался CGRectApplyAffineTransform(imageView.frame, imageView.transform);
, но создает наименьший прямоугольник для преобразованного UIImageView.
Допустим, у вас UIImageView повернут на 45 градусов и масштабирован до 1,5.Теперь, когда вы касаетесь пары пикселей за пределами UIImageView, он все равно считает, что точка касания находится внутри UIImageView Rect, но это не так.UIImageView поворачивается и масштабируется, но CGRect все еще является исходным.
Кто-нибудь знает, как с этим бороться?Я довольно новичок в графике.Все поможет.Спасибо!