在ios中为uitableview添加所有单元格下的不可见detailview,并在用户点击单元格时使其可见/不可见

时间:2013-09-09 13:06:32

标签: ios uitableview detailsview

我有动态细胞,关于细胞的信息很少。我想在另一个详细视图中向用户显示更多信息,但我不想切换另一个视图。我看到了这个方法,在所有单元格下添加了detailview,在另一个应用程序上,我试图应用它,但我没有成功。我需要很多经验,我想我可以从你们那里获得更多的知识^ _ ^

2 个答案:

答案 0 :(得分:0)

使用UITableView

的以下数据源方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    DirectoryDetails *dDetailVC = [[DirectoryDetails alloc] init];
    [self.navigationController pushViewController:dDetailVC animated:YES];\
    // OR [self presentViewController:dDetailVC animated:YES completion:nil];
}

答案 1 :(得分:0)

我认为最好和最灵活的解决方案是为行(自定义类)制作自定义视图并使用它。

您可以在Interface Builder中创建一个,为其添加标识符。稍后创建类扩展UITableViewCell,其中包含自定义元素所需的所有属性/方法。

您可以在以下代码中使用它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"YourIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.detailText = @"detailText";

    return cell;

}

使其成为可见/不可见的准备功能,该功能将改变其可见性并将其调用:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    YourCellClass* cell = [tableView cellForRowAtIndexPath:indexPath];
    [cell showHideDetails]; //this is details.visibility = !details.visiblity; inside your class
}