有人可以建议我如何在Objective C中实现以下内容吗?
当我单击特定部分的部分行时,单独展开。我如何知道单击了哪个部分以及如何返回该特定部分的行数?
注意:我在我的部分保留了一个按钮。当我点击所有部分的行时会扩展,当我点击所有部分的部分行时会再次展开。
答案 0 :(得分:3)
注意: - 我的TableView Cell高度为126,但是当我运行我的应用程序时,TableCell高度为75(如下所述),当我按下TableCell时,自动TableCell高度扩展。
请参阅: - int myCurrentSelection = 9999; //全局设置。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
int myrow = (int)indexPath.row;
if (myCurrentSelection == myrow) {
myCurrentSelection = 9999;
cell.contentView.backgroundColor = [UIColor whiteColor];
} else {
myCurrentSelection = myrow;
cell.contentView.backgroundColor = [UIColor colorWithRed:245/255.0 green:245/255.0 blue:245/255.0 alpha:1.0];
}
[tableView beginUpdates];
[tableView endUpdates];
[self.tblView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize boundingBox = [mutArrMessages [indexPath.row][@"message"] boundingRectWithSize:CGSizeMake((self.tblView.frame.size.width - 86),MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont helveticaNeueLightFontOfSize:17.0]}
context:nil].size;
CGSize size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));
if ([indexPath row] == myCurrentSelection) {
return (MAX((size.height + 46),76)) + 50;
}
return (MAX((size.height + 46),76));
}
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 76;
}