Ich habe einen Kreis auf dem iPhone-Simulator mit Quarz 2d mit Füllung gezeichnet. Gibt es eine Möglichkeit, mit der ich ein Touch-Ereignis auf diesem Kreis erkennen kann?
Danke Harikant Jammi
Ich habe einen Kreis auf dem iPhone-Simulator mit Quarz 2d mit Füllung gezeichnet. Gibt es eine Möglichkeit, mit der ich ein Touch-Ereignis auf diesem Kreis erkennen kann?
Danke Harikant Jammi
Wenn Sie einen CGPath dieses Kreises haben, können Sie einen CGPoint der Stelle erhalten, an der der Finger des Benutzers innerhalb von touchesBegan lag, und mit dem folgenden Code prüfen, ob er innerhalb dieses CGPath liegt.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];
// Depending on your code, you may need to check a different view than self.view
// You should probably check the docs for the arguments of this function--
// It's been a while since I last used it
if (CGPathContainsPoint(yourCircle, nil, location, nil)) {
// Do something swanky
} else {
// Don't do teh swank
}
}
Ich habe es nicht getestet, aber wenn der umgebende Raum um den Kreis auf einen Alphawert von 0 gesetzt wird, würde vielleicht nur der Kreis Berührungen akzeptieren. Du müsstest wahrscheinlich isOpaque für die Ansicht ausschalten und keine Hintergrundfarbe haben.
Wenn das nicht funktioniert, müssen Sie die Position des Gewindeschneiders verarbeiten und einen Code schreiben, um festzustellen, ob er sich innerhalb des Kreisbereichs befindet oder nicht.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.