首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于旋转的Transform.Translation问题

关于旋转的Transform.Translation问题
EN

Stack Overflow用户
提问于 2010-06-18 21:39:35
回答 1查看 802关注 0票数 1

当设备旋转到横向时,我使用以下方法来缩放和重新定位UIView图层。

代码语言:javascript
复制
 [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"];

然后当旋转回到肖像时的顺行

代码语言:javascript
复制
 [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)。比例似乎没问题(即不增加,重复旋转时减少)

有人能给出一个合适的解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2010-06-18 21:57:15

也许这是由于浮点数在某种程度上存在于所有实现中的浮点舍入误差?不过,如果是这样的话,最好的办法就是在代码中的某处进行某种截断或舍入。

编辑:尝试这样做,比如在转换回上使用较小的x平移,或者使用正x平移和非零y平移。

事实上,如果每次翻译的数量都保持不变,那么这可能与您提供的翻译有关。您可能在一开始就过度补偿了所需的翻译,这可能是问题的根源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3070085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档