博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UIView中的坐标转换
阅读量:5327 次
发布时间:2019-06-14

本文共 1314 字,大约阅读时间需要 4 分钟。

在使用 UITableViewCell 的frame属性获取origin得到的坐标是不变的.

也就是说如果UITableView初始化完毕后,每个cell的坐标是固定的,x不变,y 随index递增的.

经过测试发现,任何一个cell拖拽或则滑动到UITableView的任意相对位置,cell的frame属性都没有改变.

那怎样获取UITableViewCell相对于UITableView的坐标?

google中

得出,使用

[objc] view plaincopy

CGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath];

CGRect rect = [tableView convertRect:rectInTableView toView:[tableView superview]];

即可完成当前cell在屏幕中的坐标值

将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值

  • (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;

    将像素point从view中转换到当前视图中,返回在当前视图中的像素值

  • (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;

将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect

  • (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;

    将rect从view中转换到当前视图中,返回在当前视图中的rect

  • (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;

例把UITableViewCell中的subview(btn)的frame转换到 controllerA中

controllerA 中有一个UITableView, UITableView里有多行UITableVieCell,cell上放有一个button

在controllerA中实现:

CGRect rc = [cell convertRect:cell.btn.frame toView:self.view];

CGRect rc = [self.view convertRect:cell.btn.frame fromView:cell];

此rc为btn在controllerA中的rect

或当已知btn时:

CGRect rc = [btn.superview convertRect:btn.frame toView:self.view];
CGRect rc = [self.view convertRect:btn.frame fromView:btn.superview];

转载于:https://www.cnblogs.com/yate1996/p/4691027.html

你可能感兴趣的文章
正则验证积累
查看>>
Linux学习-汇总
查看>>
jQuery瀑布流+无限加载图片
查看>>
83. 删除排序链表中的重复元素
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>
python中的__init__ 、__new__、__call__等内置函数的剖析
查看>>
Java中的编码
查看>>
团队作业7——第二次项目冲刺(Beta版本)
查看>>
PKUWC2018 5/6
查看>>
Metatable让我从心认知了Lua(相知篇)
查看>>
PHP使用Apache中的ab测试网站的压力性能及mpm介绍
查看>>
golang日志收集方案之ELK
查看>>
进程间通讯:实现基于多进程的文件拷贝
查看>>
Java多线程:线程同步与关键字synchronized
查看>>
序列化之二
查看>>
PHP基础1
查看>>
As-If-Serial 理解
查看>>
Python pandas学习总结
查看>>
P5018 对称二叉树
查看>>
Java——异常处理,数据库连接
查看>>