У меня есть нижний вид (UIView) и верхний вид (UIView). У bottomView красный фон, а в IB я установил для topView значение clearColor, а для Opaque — значение OFF. С помощью следующего кода я достигаю своей цели создания прямоугольника/окна в верхнем представлении и пробивания отверстия в нижнем представлении:
- (void)drawRect:(CGRect)rect
{
// Drawing code
CGRect holeRect = CGRectMake(100, 100, 100, 100);
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
// Start by filling the area with the blue color
[[UIColor blueColor] setFill];
UIRectFill( rect );
// Assume that there's an ivar somewhere called holeRect of type CGRect
// We could just fill holeRect, but it's more efficient to only fill the
// area we're being asked to draw.
CGRect holeRectIntersection = CGRectIntersection( holeRect, rect );
[[UIColor clearColor] setFill];
UIRectFill( holeRectIntersection );
}
СЕЙЧАС - я хочу сделать прямоугольник/окно подвижным. Я установил ViewController как UIGestureRecognizerDelegate, а в файле реализации у меня есть следующий код в viewDidLoad, который работал у меня в другом проекте:
// создаем распознаватель жестов панорамирования для каждого ImageView UIPanGestureRecognizer *pan1Recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan1From:)];
// set self as delegate for gesture recognition
[pan1Recognizer setDelegate:self];
// setup the selector for the pan gesture
pan1Recognizer.minimumNumberOfTouches = 1;
pan1Recognizer.maximumNumberOfTouches = 1;
[XXX addGestureRecognizer:pan1Recognizer];
// ensure user interaction is ENABLED !!!!
[XXX setUserInteractionEnabled:YES];
Проблема в том, XXX выше. В другом моем проекте у меня было подпредставление в IB с определенным выходом, поэтому я мог явно ссылаться на него. Однако в этом проекте я создал прямоугольник в drawRect выше и не знаю, как установить это соединение.
Любая помощь приветствуется!