当我滚动 UiTableView 时,TextLabel 颜色自动更改

2023-12-07

我改变文本标签颜色didSelectRowAt但是当我滚动时UITableView它也影响到其他方面textlabel also

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
 let cell = tableView.cellForRow(at: indexPath) as! TableViewCell


    if (cell.LBLIntrest.textColor == (UIColor.black))
    {
         cell.LBLIntrest.textColor = Uicolor.blue
    } else {
          cell.LBLIntrest.textColor = Uicolor.black
    }
}

首先,您必须创建属性来保存选定的单元格,如下所示

/* To hold selected cell */
var selectedIndexPath :IndexPath?

之后设置所选单元格的颜色行单元格

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if let cell = tableView.dequeueReusableCell(withIdentifier: "cell") {
        cell.textLabel?.text = "Row Number: \(indexPath.row)"

        /* Check if cell is selected then set layout accourding to your requirements */
        if indexPath == selectedIndexPath {
            cell.textLabel?.textColor = .blue
        } else {
            cell.textLabel?.textColor = .black
        }
        return cell
    }

    return UITableViewCell()
}

在此之后,当用户选择一个单元格时进行管理didSelectRowAt

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    // Toggle if user seleted same cell
    if selectedIndexPath == indexPath {
        if let cell = tableView.cellForRow(at: indexPath) {
            /* Check and toggle selected cell color */
            cell.textLabel?.textColor = cell.textLabel?.textColor == .black ? .blue : .black
        }
    } else {
        /* set color of seleted cell */
        if let cell = tableView.cellForRow(at: indexPath) {
            cell.textLabel?.textColor = .blue
        }
    }

    /* Save which cell is selected */
    selectedIndexPath = indexPath
}

最后管理取消选择行

override func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {

    /* Remove if deselect same cell */
    if selectedIndexPath == indexPath {
        selectedIndexPath = nil
    }
     /* Change color to black */
    if let cell = tableView.cellForRow(at: indexPath) {
        cell.textLabel?.textColor = .black
    }
}

此代码用于一次选择单元格,因此您必须设置

tableView.allowsMultipleSelection = false

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我滚动 UiTableView 时,TextLabel 颜色自动更改 的相关文章

随机推荐

  • Android使用intent设置壁纸

    我正在尝试制作壁纸应用程序 我可以使用壁纸管理器设置壁纸 但我想要的是 当我单击按钮时 应该打开一个新意图 这应该是设置设备壁纸的默认方式 当我们尝试将图像形式图库设置为壁纸时出现的屏幕 我们可以在其中选择图像的区域等 我已经凝视但找不到任
  • 运行 DataNucleus Enhancer 3.1.0-release 时出现 NullPointerException

    我从 DOS 运行 DataNucleus 增强器 如下所示 java cp C Users Chania workspace myproject war WEB INF classes C repo datanucleus full 3
  • 替换字符串中多个字符的最佳方法?

    我需要替换一些字符 如下所示 我的代码如下 但我想应该有更好的方法 有什么提示吗 strs strs replace strs strs replace 替换两个字符 我对当前答案中的所有方法以及一个额外的方法进行了计时 输入字符串为abc
  • MySQL 触发器用于在多次插入之前检查值

    我有一个表 存储最低和最高气温 海水温度 tinyint 和其他参数 由于我预计新的空气输入温度在 50 到 50 度之间 因此我在桌子上做了一个触发器 但首先我做了这个程序 begin if temp lt 50 or temp gt 5
  • 线程“JavaFX应用程序线程”中的异常java.lang.IllegalArgumentException:参数类型不匹配

    我必须制作一个数独游戏 当我尝试编码时 我发现了一个问题 我无法自行修复 我正在使用 SceneBuilder 如果您有任何想法来解决我的问题或一些建议 我将非常感激这是我的代码 FXML文档控制器 public class FXMLDoc
  • 如何让 Angular JS 在 Visual Studio 2015 解决方案中工作?

    我认为我的问题是我的机器或 Visual Studio 2015 上没有正确配置 Angular JS 但我不确定 我所知道的是 我的应用程序显示了一个空白页面 并且 Visual Studio 2015 无法识别 Angular 标签 有
  • 无法在动态链接库 KERNEL32.dll 中定位过程入口点“GetTickCount64”

    我创建了一个MFC app on 视窗8 using Visual Studio 2012 更新 3 它适用于视窗8 但是在视窗XP 它向我显示以下错误 The procedure entry point GetTickCount64 co
  • 甲骨文程序

    create or replace function gen sample func owner varchar2 return varchar2 as data t varchar2 10 cursor cur is select dat
  • 带数据库后端的 Spring Cloud 配置

    我正在尝试使用带有数据库后端的 Spring Cloud Config 设置一个 Spring Boot 项目 我的设置中有以下内容 application properties spring application name my ser
  • 从另一个静态方法调用特征静态方法(rust)

    您可以从特征中实现的另一个特征静态方法调用由类型实现的特征静态方法吗 例如 trait SqlTable fn table name gt String fn load id i32 gt Something Self table name
  • 控制器中角度平移的正确使用

    我在用着角度平移用于 AngularJS 应用程序中的 i18n 对于每个应用程序视图 都有一个专用控制器 在下面的控制器中 我将值设置为显示为页面标题 Code HTML h1 pageTitle h1 JavaScript contro
  • 如何在 Jumbotron 中居中表单 - Bootstrap 4

    我对 Bootstrap 完全陌生 如果这是一个愚蠢的问题 我很抱歉 我正在尝试将表格置于大屏幕的中心 除了形式之外 大屏幕中的所有内容都处于中心位置 我已经这样好几个小时了 就是想不通 这是我的代码
  • 根据另一列的值在 pandas 中创建新列

    我有一些关于不同个体性别的数据集 比如说 数据集如下所示 Male Female Male and Female Male Male Female Trans Unknown Male and Female 有些人认为自己是男性 有些人认为
  • @Autowired beans 在 spring 3.1 中使用 beans:profiles 后未加载

    我用过beans profiles在我的 xml 中是这样的
  • 警告“ScrollingHorizo​​ntally”已定义但从未使用 no-unused-vars

    有人可以帮忙解释这个错误吗 我尝试了几种不同的方法来编写 React Component 是不是少了点什么 Error 4 7 警告 ScrollingHorizo ntally 已定义但从未使用 no unused vars 成分 imp
  • 更新 PHP 中旧存储的 md5 密码以提高安全性

    目前 我有一个存储 md5 密码的数据库 几年前 这被认为比现在更安全 并且已经到了密码需要更安全的地步 我在这里读过很多关于crypt md5 hash bcrypt等 并开始考虑使用以下内容来比现在更好地 保护 密码 我将使用以下组合h
  • Java 中鸭子类型的示例是什么?

    我最近刚刚听说鸭子打字 我读了维基百科文章关于它 但我很难将这些示例翻译成 Java 这确实有助于我的理解 有人能给出 Java 中鸭子类型的清晰示例以及我如何使用它吗 Java 的设计不适合鸭子类型 您可能选择的方式是反思 public
  • 角度找不到上传的图像

    场景很简单 使用表单上传图片 如果上传成功 则刷新图库 我使用 Angular6 和ng 轮播 所有系统均在我的 Windows 10 笔记本电脑中本地设置 表单被上传 文本数据保存在数据库中 图像保存在节点 8 11 1 的文件中 我将图
  • 如何从 MEF 组件提供 XAML 资源

    我有一个导入 MEF 组件 当导入向导打开时会动态加载该组件 一旦用户选择了她想要处理的导入类型 对导入向导对话框的控制就会传递给所选的导入组件 当然 导入组件需要向向导对话框提供资源 例如DataTemplates 目前这是通过以下方式实
  • 当我滚动 UiTableView 时,TextLabel 颜色自动更改

    我改变文本标签颜色didSelectRowAt但是当我滚动时UITableView它也影响到其他方面textlabel also func tableView tableView UITableView didSelectRowAt ind