19

を「クラス」CABasicAnimation.fromValueに変換したいので、使用しましたが、デバイスモードまたはシミュレーターでは機能しません...またはデバイスまたはシミュレーターで使用する必要があります。CGPointNSValue valueWithPointNSMakePointCGPointMake

4

7 に答える 7

52

関数を定義するUIKit追加がありますNSValue

+ (NSValue *)valueWithCGPoint:(CGPoint)point

iPhoneのドキュメントを参照してください

于 2009-04-21T15:24:28.207 に答える
13

@ashcatch の回答は非常に役に立ちますが、ネイティブNSValueメソッドがポインターを格納するときに、追加のメソッドが値をコピーすることを考慮してください。これをチェックする私のコードは次のとおりです。

CGPoint point = CGPointMake(2, 4);
NSValue *val = [NSValue valueWithCGPoint:point];
point.x = 10;
CGPoint newPoint = [val CGPointValue];

ここnewPoint.x = 2; point.x = 10


CGPoint point = CGPointMake(2, 4);
NSValue *val = [NSValue valueWithPointer:&point];
point.x = 10;
CGPoint *newPoint = [val pointerValue];

ここnewPoint.x = 10; point.x = 10

于 2012-06-19T17:52:29.193 に答える
3

Swift では、次のように値を変更できます。

    var pointValueare = CGPointMake(30,30)
    NSValue(CGPoint: pointValueare)
于 2015-04-25T05:47:33.263 に答える
1

&(cgpoint ) -> cgpoint (NSPoint *) への参照 (アドレス) を取得します。リターン型ハッピー

于 2011-05-04T21:56:59.803 に答える
-2

Don't think of it as "converting" your point-- NSValue is a wrapper class that holds primitive structs like NSPoint. Anyway, here's the function you need. It's part of Cocoa, but not Cocoa Touch. You can add the entire function to your project, or just do the same conversion wherever you need it.

NSPoint NSPointFromCGPoint(CGPoint cgpoint) {
   return (*(NSPoint *)&(cgpoint));
}
于 2009-04-21T15:12:46.037 に答える