ios条件tableview单元格渲染

标签 ios swift uitableview view uibutton

我目前正在从事一个基于 Swift 的 HRM 项目。它需要显示带有稍微自定义单元格的表格 View 。它本身包含两个按钮的单元格,在某些业务逻辑下,一个按钮将被隐藏。例如,

如果当前用户是员工本人,他可以看到一个列表,包含他名字的单元格可以看到两个按钮,但其他单元格只会显示一个按钮。 我尝试了以下方法: 1. 如果 userId == employeeId(employeeId 来自模型)那么,

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell =  tableView.dequeueReusableCell(withIdentifier: "ClaimTableViewCell", for: indexPath) as! ClaimTableViewCell

        if(self.claimdata[indexPath.section].employeeId  == self.empId) {

            cell.CancelButton.isHidden = false


        }

我也试过了

if(self.claimdata[indexPath.section].employeeId  != self.empId) {

                cell.CancelButton.frame.size.height = 0


            }

第一帧工作正常,当我开始滚动时问题就开始了。对于一些不需要的单元格,它还会显示两个按钮。

我错过了什么吗?

最佳答案

此问题是由于 UITableView 中的单元格可重用性引起的。

在您的 cellForRowAtIndexPath 方法中使用以下代码。

cell.CancelButton.isHidden = true

if(self.claimdata[indexPath.section].employeeId  == self.empId) {
        cell.CancelButton.isHidden = false
 }

关于ios条件tableview单元格渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386452/

相关文章:

ios - 返回 nil 的 Facebook iOS SDK 权限列表

ios - 设置特定的 UITableView 行以推送到特定的详细信息 View 中?

ios - 设置数字格式以显示千位和小数分隔符

ios - 分段控件中 TableView 中的 UIStepper

arrays - Swift 中解析 block 的基础知识

ios - 如何在 Swift 中制作放置在我的 UIViewController 中的水平可滚动组件?

ios - iOS11 中奇怪的 uitableview 行为。单元格向上滚动并带有导航推送动画

objective-c - 在 iOS 6 中填充 Tableview 单元格

ios - 容器 View Controller 委托(delegate)分配

objective-c - Objective-C - 从 WiFi 切换到 3G,反之亦然