1

我有部分和行的表格视图。当用户单击行/部分内的按钮时,它将显示UIView在该特定按钮附近。

- (IBAction) openRoundedPopover:(id)sender {

btn = (UIButton*)  sender;

//Identify if user clicked header section or cell row
if (btn.titleLabel.tag == 8)
    isHeaderViewButtonClicked = YES; // headerview mean when user clicks on section
else
    isHeaderViewButtonClicked = NO;

MainTableViewCell *clickedResourceCell = (MainTableViewCell*)btn.superview.superview;
CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView];

self.roundedButtonMenu.frame = CGRectMake(43, isHeaderViewButtonClicked ? hitPoint.y+50:clickedResourceCell.frame.origin.y+53, self.roundedButtonMenu.frame.size.width, self.roundedButtonMenu.frame.size.height);

[self.view addSubview:self.roundedButtonMenu];

}

这些都工作正常。但是,当用户继续添加行/部分并单击底部行/部分的按钮(即,将 tableview 滚动到底部以查看新添加的行/部分)时,它不会显示UIView在该按钮附近。它在其他地方弹出或根本不显示。

4

1 回答 1

1
MainTableViewCell *clickedResourceCell = (MainTableViewCell*)btn.superview.superview; 

不要假设您无法控制的视图层次结构。(这将在不久的 ios 未来 110% 中断)

所以我假设你没有得到单元格的框架!

MainTableViewCell *clickedResourceCell = (MainTableViewCell*)btn; 
while(clickedResourceCell.superview && ![clickedResourceCell isKindOfClass:[MainTableViewCell class]]) {
    clickedResourceCell = (MainTableViewCell*)clickedResourceCell.superview;
}

但是您的问题是您将按钮添加到不在滚动视图中的elf.view ..滚动时计算不能真正起作用,可以吗?

将其添加到单元格中:

button.frame = CGRectMake(0,0,100,40); //dummy
 [cell.contentView addSubview:btw];
//take care of cell reusing!
于 2013-09-01T11:35:09.950 回答