Unter CABasicAnimation.fromValue
Ich möchte eine CGPoint
einer "Klasse" zuzuordnen, also habe ich NSValue
valueWithPoint
aber im Gerätemodus oder Simulator funktioniert es nicht... brauchen zu verwenden NSMakePoint
o CGPointMake
wenn im Gerät oder Simulator.
Antworten
Zu viele Anzeigen?Wenn Sie eine neuere Version von Xcode (nach 2015) verwenden, können Sie dafür die moderne Objective-C-Syntax verwenden. Sie müssen lediglich Ihren CGPoint in @()
:
CGPoint primitivePoint = CGPointMake(4, 6);
NSValue *wrappedPoint = @(primitivePoint);
Unter der Haube ruft der Compiler +[NSValue valueWithCGPoint:]
für Sie.
Betrachten Sie es nicht als "Umwandlung" Ihres Punktes - NSValue ist eine Wrapper-Klasse, die primitive Strukturen wie NSPoint enthält. Wie auch immer, hier ist die Funktion, die Sie brauchen. Sie ist Teil von Cocoa, aber nicht von Cocoa Touch. Sie können die gesamte Funktion zu Ihrem Projekt hinzufügen, oder einfach die gleiche Umwandlung, wo immer Sie es brauchen.
NSPoint NSPointFromCGPoint(CGPoint cgpoint) {
return (*(NSPoint *)&(cgpoint));
}
- See previous answers
- Weitere Antworten anzeigen