这是一个相当棘手的iPhone问题。我正在开发一个库,但已将问题缩小到非常简单的代码。这段代码创建一个50x50的视图,应用几度旋转变换,然后多次向下移动框架。结果是50x50的视图看起来更大了。
以下是代码:
那么,到底发生了什么事情呢?如果我通过应用平移变换来移动视图,它可以正常工作。但这不是我想要做的,而且这个问题应该能够解决。
以下是代码:
// a simple 50x50 view
UIView *redThing = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 50, 50)];
redThing.backgroundColor = [UIColor redColor];
[self.view addSubview:redThing];
// rotate a small amount (as long as it's not 90 or 180, etc.)
redThing.transform = CGAffineTransformRotate(redThing.transform, 0.1234);
// move the view down 2 pixels
CGRect newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
// move the view down another 2 pixels
newFrame = CGRectMake(redThing.frame.origin.x, redThing.frame.origin.y + 2, redThing.frame.size.width, redThing.frame.size.height);
redThing.frame = newFrame;
那么,到底发生了什么事情呢?如果我通过应用平移变换来移动视图,它可以正常工作。但这不是我想要做的,而且这个问题应该能够解决。
有任何想法吗?