我是iPhone / Objective-C编程的新手。我有一个UIImageView * myImage,其x,y,宽度,高度使用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?
答案 0 :(得分:2)
1)你试过了吗?
CGPoint myPoint = CGPointMake(myImage.fram.origin.x, myImage.frame.origin.y);
2)经过som测试后,我发现你应该可以将你的CGPoint作为这样的属性:
@interface MyClass : NSObject {
CGPoint myPoint;
...
}
@property (nonatomic) CGPoint myPoint;
...
@end
然后:
@implementation MyClass
@synthesize myPoint;
...
@end
对我有用。
(我必须承认我还没有理解(非原子),如果有必要,但只要它有效......)