需求(常见于处理键盘遮挡问题)
已知一个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
方法就不举例了,看到这我相信你应该懂了~
网友评论