ios – 如何在不重新加载UITableView或单个单元格的情况下增加单行高度[Swift]?

我想扩展行高并显示内容.
我在视图中显示我的内容,当我点击一个单元格时它应该展开,如下图所示,但没有重新加载UITableview.

What I have tried till Now.

1)我尝试扩展内部视图,但它没有用

2)我尝试添加rowAtIndex它变得复杂了

3)我尝试更改更改行高度并滚动索引它工作正常,但我不想那样. (我必须重新加载表视图的坏事)

但我得到了很多答案,但它没有解决我的问题,因为我在数组(数据源)中的数据不断更新,如果我在特定索引处刷新索引中数组中的数据可能不同,它可能显示错误输出.

说明

我的意思是我有一个struct数组,我一直在后台更新它,一旦数据发生变化并重新加载表视图,但如果我在索引处重新加载行,如果数组中的数据已经更改,它可能显示重复正确吗?所以我想只是改变行的高度而不做任何重新加载.

重装的问题是

虽然扩展数据可能会在阵列中发生变化.所以我已经创建了一个视图,所有信息都预先加载一旦我点击单元格的高度应该从45变为76并且一旦我从最后一个单元格76到45再次点击不同的单元格,这个单元格45到76.

解决方法

表高度只能通过代表更改没有其他方法可以做到这一点我会告诉你一个简单的方法.

声明变量

var selectedindex = NSIndexPath()

在didSelectRowAtIndexPath里面重新加载选中的单元格

func tableView(tableView: UITableView,didSelectRowAtIndexPath indexPath: NSIndexPath) {

        selectedindex = indexPath
        tableView.reloadRowsAtIndexPaths([indexPath],withRowAnimation: UITableViewRowAnimation.Fade)

    }

内部heightForRowAtIndexPath返回大小

func tableView(tableView: UITableView,heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath == selectedindex {

        return 100 //Size you want to increase to
    }
    return 50 // Default Size
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...