微信扫一扫

028-83195727 , 15928970361
business@forhy.com

iOS开发小结 - UIView的坐标转换

ios2016-08-05

在开发过程中,我们经常为了计算UIView的坐标而烦恼,其实UIView有一套专门关于坐标转换的扩展,下面我们看看有哪些方法


关于UIView的左边转换一共有一下四个方法,分别是:

  • public func convertPoint(point: CGPoint, toView view: UIView?) -> CGPoint

  • public func convertPoint(point: CGPoint, fromView view: UIView?) -> CGPoint

  • public func convertRect(rect: CGRect, toView view: UIView?) -> CGRect

  • public func convertRect(rect: CGRect, fromView view: UIView?) -> CGRect

下面分别分析一下以上四个方法如何使用:

func convertPoint(_ point: CGPoint, toView view: UIView?) -> CGPoint

官方的解释是,将一个点从接收器的坐标点转换为指定视图的相对应的坐标点

参数 参数解释
point 就是你需要转换的UIView上的一个坐标点CGPoint
view 需要转换到的指定的UIView,如果这个值为nil,那将转化为当前UIWindow上的对应的坐标,并且这两个UIView必须在同一个UIWindow下才能转换

func convertRect(_ rect: CGRect, toView view: UIView?) -> CGRect

官方的解释是,将一个CGRect从接收器的坐标点转换为指定视图的相对应的CGRect

参数 参数解释
rect 就是你需要转换的UIView上的一个CGRect
view 需要转换到的指定的UIView,如果这个值为nil,那将转化为当前UIWindow上的对应的CGRect,并且这两个个UIView必须在同一个UIWindow下才能转换

func convertPoint(_ point: CGPoint, fromView view: UIView?) -> CGPoint

官方的解释是,将一个CGPoint从一个给定视图的坐标系转换为接收UIView的一个CGPoint,意思就是跟之前的toView是相反的,是把指定UIView的点转换到接受者的UIView上。

参数 参数解释
point 就是你需要转换的UIView上的一个CGPoint
view 需要转换的指定的UIView,如果这个值为nil,那将转化为当前UIWindow上的对应的CGPiont,并且这两个个UIView必须在同一个UIWindow下才能转换

func convertRect(_ rect: CGRect, fromView view: UIView?) -> CGRect

官方的解释是,将一个CGRect从一个给定视图的坐标系转换为接收UIView的一个CGRect,意思就是跟之前的toView是相反的,是把指定UIView的点转换到接受者的UIView上。

参数 参数解释
rect 就是你需要转换的UIView上的一个CGRect
view 需要转换的指定的UIView,如果这个值为nil,那将转化为当前UIWindow上的对应的CGRect,并且这两个个UIView必须在同一个UIWindow下才能转换

总结:其实convertPoint(_ point: CGPoint, toView view: UIView?)func convertPoint(_ point: CGPoint, fromView view: UIView?) -> CGPoint是一对相反的存在,只要弄懂了其中的一个,另外一个就非常好理解了。