【发布时间】:2010-04-12 06:17:53
【问题描述】:
CGRect rect1 = backgroundImageView.frame;
NSLog(@"%f,%f,%f,%f",rect1.origin.x,rect1.origin.y,
rect1.size.width,rect1.size.height);
angle = -90.0;
moveX = 0;
moveY = 0.0;
CGFloat degreesToRadians = M_PI * angle / 180.0;
CGAffineTransform landscapeTransform =
CGAffineTransformMakeRotation(degreesToRadians);
landscapeTransform =
CGAffineTransformTranslate(landscapeTransform, moveX, moveY);
[backgroundImageView setTransform:landscapeTransform];
rect1 = backgroundImageView.frame;
NSLog(@"%f,%f,%f,%f",rect1.origin.x,rect1.origin.y,
rect1.size.width,rect1.size.height);
调试信息输出:
0.000000,0.000000,320.000000,480.000000
-80.000000,80.000000,480.000000,320.000000
为什么 (x,y) 会变成 (-80,80)?
【问题讨论】:
-
为什么要在每个轴上将原点平移零点?那没有任何作用。 (即使您认为
CGAffineTransformTranslate将 转换为 那一点,但它没有,那仍然不会做任何事情:翻译移动原点,而 0,0 是 原点,因此转换为 0,0 会将原点移动到原点。这也不会做任何事情。)
标签: cocoa cocoa-touch core-graphics