찾다

 >  Q&A  >  본문

ios - convertRect:view.frame toView:window x 异常翻倍?

    UIWindow *window = [[UIApplication sharedApplication].windows lastObject];
    NSLog(@"window.f %@", NSStringFromCGRect(window.frame));
    CGRect newFrame = [view convertRect:view.frame toView:window]; 
    NSLog(@"原始:%@ 转换:%@", NSStringFromCGRect(view.frame), NSStringFromCGRect(newFrame));

window.f {{0, 0}, {320, 480}}
原始:{{85, 7}, {150, 30}} 转换:{{170, 34}, {150, 30}}

为什么 x 被翻倍了?
View 为灰色控件

如果将控件放到view 中

2016-03-07 02:39:25.662 微博2期[57203:938330] window.f {{0, 0}, {320,
480}} 2016-03-07 02:39:25.662 微博2期[57203:938330] 原始:{{20, 60}, {40,
20}} 转换:{{40, 184}, {40, 20}}

得到以上数据。。。184 - 64 正好 120,也就是说x * 2, y * 2 了

将控件添加到一个视图中,相对于视图转换(这个比较难说明白,简单说就是排除了各种bar的干扰)结果直接x y 都双倍了。。。

PHP中文网PHP中文网2887일 전371

모든 응답(2)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-17 17:39:42

    올바른 글쓰기 방법 두 가지

    으아악

    convertRect 호출자가 오해를 하고 있습니다. 변환해야 할 컨트롤 자체가 아닌 참조 프레임 뷰여야 합니다.

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:39:42

    [view convertRect:view.frame toView:window] -> [view convertRect:view.frame toView:nil]
    을 이렇게 변경하면 제목 설명에는 문제가 없습니다.

    회신하다
    0
  • 취소회신하다