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
是一对相反的存在,只要弄懂了其中的一个,另外一个就非常好理解了。