我在静态UITableViewCell中有一个按钮。我想要做的是在按钮位置放置一个UIView。
如果我只是获取按钮位置,它将给我一个相对于tableviews单元格的位置,而不是从tableViewController的顶部。我想要的是从tableViewController的顶部获取按钮位置。
例如:如果按钮距离电流顶部8px 单元格,但距离viewController的顶部57px,我想 把UIView放在57px。
这是我的代码:
- (void)viewDidLoad {
CGPoint buttonPosition = [button convertPoint:CGPointZero fromView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:buttonPosition];
CGRect rect = [myTableView rectForRowAtIndexPath:indexPath];
NSLog(@"%f, %f", rect.origin.y, rect.origin.x);
self.infoView = [[UIView alloc] initWithFrame:CGRectMake(button.frame.origin.x, button.frame.origin.y, 220, 110)];
}
nslog的输出为0。
每当iphone进入横向模式时,我也想更新UIView的位置。
答案 0 :(得分:0)
CGPoint originalPoint = button.frame.origin;
CALayer *layer = self;
CGPoint point = originalPoint;
while (layer.superlayer)
{
point = [layer convertPoint:point toLayer:layer.superlayer];
layer = layer.superlayer;
}
//When you reach this code, you should have the position in the rootView