当设备旋转到横向时,我使用以下方法来缩放和重新定位UIView图层。
[containerView.layer setValue:[NSNumber numberWithFloat: 0] forKeyPath: @"transform.translation.x"];
[containerView.layer setValue:[NSNumber numberWithFloat: 0] forKeyPath: @"transform.translation.y"];
[containerView.layer setValue:[NSNumber numberWithFloat: 1] forKeyPath: @"transform.scale.x"]; //[NSNumber numberWithInt:1]
[containerView.layer setValue:[NSNumber numberWithFloat: 1] forKeyPath: @"transform.scale.y"];然后当旋转回到肖像时的顺行
[containerView.layer setValue:[NSNumber numberWithFloat: -75] forKeyPath: @"transform.translation.x"];
[containerView.layer setValue:[NSNumber numberWithFloat: 0] forKeyPath: @"transform.translation.y"];
[containerView.layer setValue:[NSNumber numberWithFloat: .7] forKeyPath: @"transform.scale.x"]; //[NSNumber numberWithInt:1]
[containerView.layer setValue:[NSNumber numberWithFloat: .7] forKeyPath: @"transform.scale.y"];问题是,在旋转回到纵向后,图层正在“移动”,即x,y偏移量逐渐变化(增加x,减少y)。比例似乎没问题(即不增加,重复旋转时减少)
有人能给出一个合适的解决方案吗?
发布于 2010-06-18 21:57:15
也许这是由于浮点数在某种程度上存在于所有实现中的浮点舍入误差?不过,如果是这样的话,最好的办法就是在代码中的某处进行某种截断或舍入。
编辑:尝试这样做,比如在转换回上使用较小的x平移,或者使用正x平移和非零y平移。
事实上,如果每次翻译的数量都保持不变,那么这可能与您提供的翻译有关。您可能在一开始就过度补偿了所需的翻译,这可能是问题的根源。
https://stackoverflow.com/questions/3070085
复制相似问题