在带有滚动视图的解决方案中,您无法在滚动视图中滚动,因为gestureRecognizer“获得”了触摸。因此我根本不会使用滚动视图。
使标签调整为其内容的大小,例如:
CGSize customTextLabelSize = [cell.customTextLabel.text sizeWithFont:cell.customTextLabel.font constrainedToSize:CGSizeMake(cell.customTextLabel.frame.size.width, 999999)];
cell.customTextLabel.frame = CGRectMake(cell.customTextLabel.frame.origin.x, cell.customTextLabel.frame.origin.y, cell.customTextLabel.frame.size.width, customTextLabelSize.height);
您还需要在 heightForRowAtIndexPath 中实现它
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
CGSize cellSize = [bigTextString sizeWithFont:customTextLabel.font constrainedToSize:CGSizeMake(generalCellWidth, 999999)];
return cellSize.height;
}
这样您就可以使用 didSelectRowAtIndex 方法。
如果您真的想使用滚动视图,请在 cellForRowAtIndexPath: 方法中向您的单元格添加一个按钮。使按钮与单元格一样大,并添加一个按钮标签,如下所示:
UIButton *cellButton = [UIButton buttonWithType:UIButtonTypeCustom];
cellButton.frame = CGRectMake(0, 0, cell.frame.size.width, cell.frame.size.height);
cellButton.tag = indexPath.row;
[cellButton addTarget:self action:@selector(cellButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:cellButton];
然后加:
-(void)cellButtonAction:(UIButton*)sender
{
//do something with sender.tag
}