IOS开发中的坐标转换

在平时的开发中, 我们经常会遇到一个控件的上面添加另一个控件的情况,这时如果需要获取该控件的子控件相对于目标视图的坐标值,通过坐标转换可以快速实现。

示例图片

苹果为我们提供了两个方法可以实现坐标的转换:

1.将控件由所在视图转换到目标视图中时,返回在目标视图中的坐标值

<pre>
<code>- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;</code>
</pre>
示例:
<pre>
<code>-CGRect newRect=[redView.superview convertRect:redView.frame toView:window];</code>
或者:
<code>-CGRect newRect=[redView convertRect:redView.bounds toView:window];</code>
</pre>

2. 将控件从目标视图中转换到当前视图中,返回在当前视图中的坐标值

<pre>
<code>- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;</code>
</pre>
示例:
<pre>
<code>-CGRect newRect=[window convertRect:redView.frame fromView:redView.superview];</code>
或者:
<code>-CGRect newRect=[window convertRect:redView.bounds fromView:redView];</code>
</pre>

注意:上面的转换涉及到frame和bounds的问题,切记:frame是相对于父控件而言的,而bounds是相对于自己本身而言的。

小结

以上方法是针对近期自学新浪微博项目的一点小小总结,行笔简陋,如有错误,望指正。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容