1

我是 iPhone/Objective-C 编程的新手。我有一个 UIImageView *myImage ,它的 x,y,width,height 是使用 CGRect 设置的,其值为 (20,20,100,100) 或其他值;

Q1)当我执行以下操作时,为什么我不能将原始值提取到 CGPoint 中。

CGPoint myPoint = myImage.frame.origin;

NSLog(@"X:%f Y:%f",mypoint.x, mypoint.y) // Prints X: 0.0 and Y: 0.0 instead of X:20.0 and Y: 20.o
NSLog(@"X:%f Y:%f",myImage.frame.origin.x, myImage.frame.origin.x) // Prints X: 20.0 and Y: 20.0  

上面的 NSLog 语句不会打印 myPoint 的预期值,但会打印 myImage.frame.origin 的正确值。为什么?

Q2) 另外为什么我不能将 @property 设置为 CGPoint ?

4

1 回答 1

2

1)您是否尝试过:

CGPoint myPoint = CGPointMake(myImage.fram.origin.x, myImage.frame.origin.y);

2)经过一些测试,我发现您应该能够将您的 CGPoint 作为这样的属性:

@interface MyClass : NSObject {

CGPoint myPoint;
...
}
@property (nonatomic) CGPoint myPoint;

...
@end

接着:

@implementation MyClass
@synthesize myPoint;

...

@end

这对我有用。

(我必须承认我还没有理解(非原子),如果有必要,但只要它有效......)

于 2011-01-19T08:01:21.483 回答