一旦我改变了它的锚点并将其位置更新为原始位置,我就无法在其原始位置显示UIView。
例如:
我在另一个视图中有一个视图(主视图)。视图子(viewA)位于(110,234)位置,其大小为(100,100)。
以下代码显示了我尝试更改锚点A的方式,从默认(0.5,0.5)到右下角(1.0,1.0)。在我改变了它的锚点之后,我是如何尝试重置视图A层的原始位置的。
此代码位于主Viev控制器的viewDidLoad方法中。
-(void)viewDidLoad
{
[super viewDidLoad];
//the default anchor point of view A is (0.5,0.5) at the center of layer
//show position of view A in output console
NSLog(@"View Pos X: %f View Pos Y: %f", CGRectGetMinX(self.viewA.frame),CGRectGetMinY(self.viewA.frame));
//save the original position of view A according to the future anchor point (lower right corner)
CGRect frame = self.viewA.frame;
CGPoint originalPos = CGPointMake(CGRectGetMaxX(frame), CGRectGetMaxY(frame));
//set the new anchor point for view A
self.viewA.layer.anchorPoint = CGPointMake(1.0, 1.0);
//show position of view A in output console
NSLog(@"View Pos X: %f View Pos Y: %f", CGRectGetMinX(self.viewA.frame),CGRectGetMinY(self.viewA.frame));
//try to restore the position of view A layer according the new anchor point (1.0,1.0)
self.viewA.layer.position = originalPos;
//update visually the layer of view A (i think this is not necessary)
[self.viewA setNeedsDisplay];
//show position of view A in output console
NSLog(@"View Pos X: %f View Pos Y: %f", CGRectGetMinX(self.viewA.frame),CGRectGetMinY(self.viewA.frame));
}
但在视觉上,视图A不会回到原始位置。 看着输出控制台,看起来该视图位于初始位置。
View Pos X: 110.000000 View Pos Y: 234.000000
View Pos X: 60.000000 View Pos Y: 184.000000
View Pos X: 110.000000 View Pos Y: 234.000000
为什么呢?发生了什么?我的代码有什么问题?
如果有人能帮助我,我将非常高兴。