最近有个需求,需求如下:vc下有一个tableview和一个button,这儿以568作为屏幕高。tableview的frame为(0,0,320,568);button的frame为(0,20,320,60),tableview在最上层,盖住button,然后设置tab的ContentInset为(100,0,0,0),tab的背景色为透明,试问,当我点击button的时候我应该怎么样才能拿到button 的点击事件??
因为这个我是用坐标转换来做的,所以这里就记录一下坐标转换。
//将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
//将像素point从view中转换到当前视图中,返回在当前视图中的像素值
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
或当已知viewA时:
[self convertPoint:point toView:viewA]
或
[viewA convertPoint:point fromView:self]
//将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;
//将rect从view中转换到当前视图中,返回在当前视图中的rect
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;
例把UITableViewCell中的subview(viewA)的frame转换到controllerA中
// controllerA 中有一个UITableView, UITableView里有多行UITableVieCell,cell上放有一个viewA
//在controllerA中实现:
CGRect rect = [cell convertRect:cell.viewA.frame toView:self.view];
或
CGRect rect = [self.view convertRect:cell.viewA.frame fromView:cell];
//此rect为viewA在controllerA中的rect
或当已知viewA时:
CGRect rect = [viewA.superview convertRect:viewA.frame toView:self.view];
或
CGRect rect = [self.view convertRect:viewA.frame fromView:viewA.superview];
网友评论