当前位置: 首页 > 面试题库 >

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

汪丁雷
2023-03-14
问题内容

我想扩大 行高
并显示其中的内容。我在想要的视图中显示我的内容,当我点击一个单元格时,它应该像下图所示那样展开,但无需重新加载UITableview。

图片

到目前为止,我一直在尝试。

1)我尝试在内部扩大视图,但是没有用

2)我尝试添加rowAtIndex变得越来越复杂

3)我尝试更改更改行高并在索引处滚动,效果很好,但我不想那样做。(不好的事情,我必须重新加载表视图)

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

说明

我的意思是我有一个结构数组,一旦数据更改并重新加载表视图,我会继续在后台对其进行更新,但是如果我重新加载了索引处的行,并且如果数组中的数据已经更改,则可能显示重复正确吗?所以我只想更改行的高度而无需重新加载。

重新加载的问题是

而扩展数据可能会改变数组中的数据。所以我已经创建了一个视图,一旦我点击单元格的高度应该从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
}


 类似资料:
  • 我正在用Xcode 10做。我在视图控制器中有一个表视图。 单元格的标签设置为前导、跟踪、顶部和底部,行为0 在ViewDidload()中,我添加了 但是当我点击Viewcontroller时,tableview没有加载正确的高度单元格(需要自动调整大小的单元格没有加载,不需要的单元格被调整大小) 然后我加上这段代码 代码只对最初的几个单元格运行良好,但是当我向下滚动更多的时候(我有大约超过10

  • 我有一个表格视图,每个单元格都有自己的高度,因此不适合使用。相反,现在我使用和。这意味着它调用单元格上的函数来确定它的高度。这一切都很好。 问题是当你重新加载屏幕上的单元格时。例如,向下滚动以显示单元格10,然后重新加载单元格10,效果很好。但是当您开始向上滚动,经过您已经看到的单元格时,它会恢复到每个单元格的estimatedRowHeight,完全不考虑< code>sizeThatFits,

  • 问题内容: 如何在Swift中的tableView单元中以编程方式嵌入?我就是那样做 问题答案: 这是您可以在单元格上嵌入的方法。 这是切换调用贝克方法 @LeoDabus 。 注意:如果您可能有多个,则应创建一个CustomCell子类并配置您的内部 方法而不是表视图方法。当将可重用的队列释放出队列时,将其投射到您的CustomCell中这是@LeoDabus的示例

  • 问题内容: 我正在一个有两个秒和两个秒的项目上,当用户按下按钮时,第一个中的数据应该进入,第二个中的数据进入第二个。我的问题是,我不知道每次用户按下按钮时都如何放置数据,我知道如何插入数据,但是据我所知,这种方法只能工作一次。那么,每当用户按下按钮时,我可以使用哪种方法来更新? 问题答案: 单击按钮时,使用和插入新单元格。 首先将数据追加到tableview数组中 然后更新表格并插入新行 这将插入

  • 可变长度的文本数据正在注入到表视图单元格标签中。为了正确调整每个单元格高度的大小,我在中实现了: 这估计高度为88.0像素,如果更大,应该会自动调整高度大小。它非常适用于尚未滚动到的单元格(因为在滚动到单元格时被调用),但不适用于最初在加载数据时在屏幕上呈现的单元格。 我尝试过重新加载数据(正如许多其他资源中建议的那样): 在这两个和,它没有帮助。我迷路了…有人知道如何渲染最初在屏幕上加载的单元格

  • 有没有办法打开开发菜单或重新加载应用程序而不摇晃应用程序? Android无线wifi,无需usb线缆Windows 10 热装填或现场装填不够好,我的手臂受伤:)