Я делал это в прошлом, создав пользовательский UIView, а затем переопределив метод pointInside класса UIView. Это метод, который срабатывает каждый раз, когда UIView получает сенсорное уведомление. Когда это происходит, вы можете узнать, было ли прикосновение внутри или за пределами ваших взглядов.
Например, ваш пользовательский UIView может выглядеть так:
CustomTouchUIView.h
#import
@protocol CustomTouchUIViewDelegate
- (void) uiViewTouched:(BOOL)wasInside;
@end
@interface CustomTouchUIView : UIView
// Properties
@property (nonatomic, assign) id delegate;
@end
CustomTouchUIView.m
#import "TOTouchUIView.h"
@implementation CustomTouchUIView
#pragma mark - Synthesize
@synthesize delegate;
#pragma mark - Touches
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
if( point.x > 0 && point.x < self.frame.size.width && point.y > 0 && point.y < self.frame.size.height )
{
[delegate uiViewTouched:YES ];
return YES;
}
[delegate uiViewTouched:NO ];
return NO;
}
@end
У меня есть загружаемый пример / учебник онлайн здесь