Я хочу определить класс перетаскиваемых изображений, подклассифицируя UIImageView, разделяя то, как они выглядят (в подклассе) и как пользовательский интерфейс реагирует на то, куда они перемещаются (в контроллере представления)
myType1Image.h
@interface myType1Image : UIImageView { }
myType1Image.m
...
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
// Retrieve the initial touch point
}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
// Move relative to the original touch point with some special effect
}
- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event {
// Notify the ViewController ... here is my problem...how?
// would call GotIt on viewController for example
}
...
реализация viewcontroller
....
myType1Image *img = [[myType1Image alloc] initWithImage:[UIImage imageNamed:@"iOSDevTips.png"]];
img.center = CGPointMake(110, 75);
img.userInteractionEnabled = YES;
[subview addSubview:img];
...
- (void) gotIt:(id) (myType1Image *)sender{
if (CGRectContainsPoint( myimage.frame, [sender.center] )){
NSLog(@"Got IT!!!");
}
}
....
Я не могу понять, как ViewController мог быть уведомлен из класса myType1Image для touchesEnded (например).
Я сделал это, написав весь код на viewcontroller, но я хочу сделать это, используя подклассы, чтобы я мог отделить обработку событий и визуализацию изображений от реальной функциональности моего интерфейса.
Поэтому, если у меня 15 перетаскиваемых изображений, мне не нужно угадывать, какое изображение соприкасается, и решать, какие визуальные эффекты применять.
Возможно ли это? Errooneus aproach?