美文网首页
convertPoint

convertPoint

作者: 伏特加 | 来源:发表于2016-05-03 10:52 被阅读436次

    convertPoint本身并不难理解,但是下面的这些特殊情况一定要注意,经过测试,总结如下:

    UIView* fromView = [[UIView alloc] init];
    [fromView convertPoint:aPoint toView:toView];
    就是将fromView坐标系中的一个点转换为toView中的一个点。

    这时需要注意:
    1、如fromView是nil,则返回CGrectZero。
    这种情况发生在view的init方法中; [self.superView convertPoint:aPoint toView:toView];
    此时的self.superView是nil。
    2、如果toView是nil则相当于:[fromView convertPoint:aPoint toView:selfView.window];
    所以如果要将坐标转为相对于窗口的坐标,则只要如下就可以了:
    [fromView convertPoint:aPoint toView:nil];

    3、fromView和toView还没有放到一个view中去,也就是没有对它们执行addSubview方法,此时它们的superView是nil。这种情况一定要小心了,
    尽量不要这么作,因为view还没有建立明确的相对坐标系,这时cocoa框架一定很抓狂,作了很多假设,一般是以创建fromView和toView的那个view作为superView来处理的,但是并不确定。
    所以一定要小心.

    相关文章

      网友评论

          本文标题:convertPoint

          本文链接:https://www.haomeiwen.com/subject/dknlrttx.html