У меня есть простой экран в моем приложении для iPhone, где я хочу прямоугольник 320x100 в нижней части экрана, чтобы захватить прикосновение. Вот мой код внутри touchesBegan:withEvent
:Происхождение прямоугольника в CGRectMake
for (UITouch *touch in touches) {
CGPoint touchPoint = [touch locationInView:self.view];
NSLog(@"touch @ %f, %f", touchPoint.x, touchPoint.y);
// build a rectangle where we want to capture a URL tap
CGRect rectangle = CGRectMake(0, 480, 320, 100);
NSLog(@"midX, midY = %f, %f", CGRectGetMidX(rectangle), CGRectGetMidY(rectangle));
// check to see if they tapped the URL
if (CGRectContainsPoint(rectangle, touchPoint)) {
NSLog(@"You touched inside the rectangle.");
}
}
Сейчас этот код не работает надлежащим образом ... бревно от средней точки прямоугольника показывает, что мой прямоугольник построен на midX, midY = 160.000000, 530.000000
. Согласно документации CGPoint, начало координат (0, 480)
- нижний левый угол, но это действует как начало координат в верхнем левом углу.
Когда я меняю начало своего прямоугольника на 0, 380, все работает по назначению. Может быть, сегодня утром я не так кофе, но почему я вижу это несоответствие между документацией и казнью?
Интересно. Вы проголосовали за вас и хотели бы, чтобы некоторые другие согласились/не согласились, прежде чем принимать. Благодаря! – Greg