2013-01-02 2 views

risposta

3

Se si definisce il poligono come CGPath, è possibile utilizzare CGPathContainsPoint() ... Puoi dirci di più sul tuo concetto di applicazione?

EDIT:

C'è anche il più alto livello UIBezierPath e/o NSBezierPath .. entrambi questi oggetti hanno un metodo di -containsPoint.

+0

Grazie. Sembra esattamente quello che sto cercando. Non sono riuscito a trovare questa soluzione per la vita di me. – user1941895

+0

bene, questo sta usando l'API C Core Graphics, quindi non è al livello di Obj-C o C++ ... Quindi non apparirebbe nella documentazione della classe Obj-C. – nielsbot

0

Forse si sta facendo qualcosa di insolito, come desideri solo tocchi per essere rilevati all'interno di un triangolo o qualcosa . Se è così, puoi ignorarlo. Tuttavia, dato che sei nuovo su iOS, ti consiglio di utilizzare una sottoclasse UIControl con coppie di azioni di destinazione o uno UIGestureRecognizer.

codice di esempio potrebbe essere:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

Più tardi nel target - probabilmente il vostro controller della vista, si dovrebbe implementare il metodo:

- (void)buttonPressed:(id)sender 
{ 
} 

Con un sistema di riconoscimento gesto, si dovrebbe aggiungere il gesto riconoscimento a UIView e, come con lo UIControl, aggiungere una coppia azione di destinazione:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)]; 
[self.view addGestureRecognizer:tapRecognizer]; 

- (void)viewTapped:(UIGestureRecognizer *)recognizer 
{ 
} 

Questi sono gli approcci tipici per l'interazione dell'utente di base. Avrai molto più tempo più semplice con questi rispetto all'utilizzo di touchesBegan & società, anche se se sono ciò di cui hai bisogno, gli altri rispondenti ti hanno coperto.