美文网首页
convertRect: fromView:和convertRe

convertRect: fromView:和convertRe

作者: IMKel | 来源:发表于2021-10-28 17:04 被阅读0次

    需求(常见于处理键盘遮挡问题)

    已知一个view的frame,想知道在另一个view上,这个frame是多少?

    或者说

    已知self.view的子view的frame值,想知道这个frame值对应到keywindow上是多少?

    上面两句话描述着同一个需求,处理这个需求可以这么做,代码如下:

    CGRect <对应到另一个view上的frame> = 
    [<另一个view> convertRect:<已知一个view的frame> fromView:<已知的view>];
    
    //实际例子
    CGRect frame = 
    [[UIApplication sharedApplication].keyWindow convertRect:self.textField.frame fromView:self.textField.superview];
    

    理解了上面这个方法,等同于理解了
    convertRect: toView:
    convertPoint:toView:
    convertPoint:fromView:
    这3个方法。

    例如:上面代码等价于下面代码

    CGRect <对应到另一个view上的frame值> 
    = [<已知的view> convertRect:<已知view的一个frame值> toView:<对应到另一个view上>];
    
    CGRect frame = 
    [self.textField.superview convertRect:self.textField.frame toView:[UIApplication sharedApplication].keyWindow];
    

    另外两个convertPoint方法就不举例了,看到这我相信你应该懂了~

    相关文章

      网友评论

          本文标题:convertRect: fromView:和convertRe

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