как работает "pointInside:"? - PullRequest
       3

как работает "pointInside:"?

3 голосов
/ 23 августа 2011

Я провожу какое-то тестирование на попадание и столкнулся с непонятной ситуацией.

У меня есть две кнопки: «FavoritesButton» и «shareButton».Следующий код приводит к тому, что «a» и «b» являются истинными, даже если кнопки не перекрываются:

CGPoint dunno = CGPointMake(11, 7);

BOOL a = [self.favoriteButton pointInside:dunno withEvent:nil];
BOOL b = [self.shareButton pointInside:dunno withEvent:nil];

, и просто чтобы доказать это, вот описание выходных данных для двух кнопок в точке, котораяэтот код называется.

Printing description of _favoriteButton:
<UIButton: 0x5da8c90; frame = (10 6; 37 35); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x5da8d40>>
Printing description of _shareButton:
<UIButton: 0x5da7150; frame = (46 6; 30 35); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x5da59b0>>

Что здесь происходит?Я неправильно понимаю, какой должен быть результат?

1 Ответ

1 голос
/ 23 августа 2011

Ну @ ​​Nippysaurus согласно документации

http://developer.apple.com/library/iOS/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/pointInside:withEvent:

A point that is in the receiver’s local coordinate system (bounds).

Это означает, что точка CGPoint dunno = CGPointMake(11, 7); находится внутри вида, так как границы вида будут отличаться от кадра того же вида.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...