Dire che ho questo codice:Come rendere un superview intercettare gli eventi di tocco del pulsante?
#import <UIKit/UIKit.h>
@interface MyView : UIView
@end
@implementation MyView
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
// How can I get this to show up even when the button is touched?
NSLog(@"%@", [touches anyObject]);
}
@end
@interface TestViewAppDelegate : NSObject <UIApplicationDelegate>
{
UIWindow *window;
}
@end
@implementation TestViewAppDelegate
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
MyView *view = [[MyView alloc] initWithFrame:[window frame]];
[view setBackgroundColor:[UIColor whiteColor]];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Hiya!" forState:UIControlStateNormal];
[button setFrame:CGRectMake(100.0, 100.0, 200.0, 200.0)];
[view addSubview:button];
[window addSubview:view];
[window makeKeyAndVisible];
}
- (void)dealloc
{
[window release];
[super dealloc];
}
@end
Esiste un modo per intercettare gli eventi di tocco sempre inviati al pulsante? Quello che mi piacerebbe eventualmente fare è creare una sottoclasse UIView che dica al suo controller di visualizzazione (o delegato, qualunque cosa) quando rileva uno swipe in modo che possa "spingere" il prossimo controller di visualizzazione sullo stack (simile alla schermata iniziale di iPhone). Ho pensato che questo fosse il primo passo, ma sono aperto a suggerimenti se mi sto avvicinando in modo errato.
non intendi return [superview hitTest: point withEvent: event]; –
'super' ha ragione perché vorrete chiamare il metodo di classe genitore delle classi,' superview' salterà su questo. – keegan3d