How to increase the single row height without reloading UITableView or individual cells [Swift]?(如何在不重新加载 UITableView 或单个单元格 [Swift] 的情况下增加单行高度?)
问题描述
我想扩展行高并显示里面的内容.当我点击一个单元格时,我会在我想要的视图中显示我的内容,它应该如下图所示展开,但无需重新加载 UITableView
.
I want to expand the row height and show the content inside.
I show my content in view I want when I tap on a cell it should expand like showed in the image below but without reloading the UITableView
.
我尝试在里面展开视图,但没有成功
I tried expanding the view inside but it didn't work
我尝试添加 rowAtIndex 变得复杂了
I tried adding rowAtIndex it was becoming complicated
我尝试更改行高并在索引处滚动它工作正常,但我不想那样.(坏事我必须重新加载表格视图)
I tried changing change row height and scroll at index it worked fine but I don't want like that. (bad thing I have to reload the table view)
但是我得到了很多答案,但它并没有解决我的问题,因为如果我在特定索引处刷新,我的数组(数据源)中的数据会不断更新,索引处的数组中的数据可能会有所不同,它可能会显示输出错误.
But I got many answers but it didn't address my issue as my data in the array(data source) is continuously updated if I refresh at specific index the data in the array at the index might be different it might show the wrong output.
我的意思是我有一个结构数组,一旦数据更改并重新加载表视图,我会在后台继续更新它,但是如果我重新加载索引处的行并且如果数组中的数据已经更改,它可能会显示重复正确的?所以我只想改变行的高度而不做任何重新加载.
I mean I have an array of struct I keep on updating it in background once the data change and reload the table view but if the i reload the row at index and if the data in an array is already changed it might show duplication correct? so i want to just change the height of the row without doing any reload.
在扩展数据时,数组中可能会发生变化.所以我已经创建了一个视图,并且一旦我点击单元格的高度应该从 45 变为 76 并且一旦我再次从最后一个单元格 76 到 45 和这个单元格 45 到 76 点按不同的单元格,所有信息都会被预加载.
while expanding the data might change in the array. so i already created a view and all the info is preloaded once i tap the height of the cell should change from 45 to 76 and once i tap different cell again from last cell 76 to 45 and this cell 45 to 76.
推荐答案
表格高度只能通过委托来改变,没有其他方法可以做到,我会告诉你一个简单的方法.
Table height can only be changed through delegates there is no other way to do it i will show you a simple way to do it.
声明变量
var selectedIndex = NSIndexPath()
在didSelectRowAtIndexPath里面重新加载选中的单元格
Inside didSelectRowAtIndexPath reload selected cell
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
}
这篇关于如何在不重新加载 UITableView 或单个单元格 [Swift] 的情况下增加单行高度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在不重新加载 UITableView 或单个单元格 [Swift] 的情况下增加单行高度?
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01