修改 tableView 中的 UITableViewCellaccessoryType 时出现问题:didSelectRowAtIndexPath:

2024-02-10

我有一个透明的表格视图(带有子视图 UIImageView 的 UIViewController 和位于 UIImageView 同级顶部的另一个子视图 UITableView,其背景=clearColor,UITableViewCells 背景=clearColor)。我还希望点击单元格以在复选标记和无之间切换单元格的accessoryType。如果我在 tableView:didSelectRowAtIndexPath: 中修改UITableViewCell的accessoryType,有时(30-50%的时间,在ios4.1模拟器上和运行os4.1的3GS iphone上)当从accessoryType None切换到accessoryType时,选中复选标记图像是在不透明的白色背景而不是透明背景上绘制的。相反,如果我重新加载表格(其中还为每个单元格正确设置了accessoryType),则透明度在100%的情况下都能正常工作。

这是一个错误吗?或者修改 tableView:didSelectRowAtIndexPath: 中的单元格不是正确的做法,应该重新加载该行?还是我还缺少其他东西?

编辑:这是我的 didSelectRowAtIndexPath 代码,显示了不良行为:

编辑2:发生的事情的更多细节。问题发生在取消选择动画的最后端。当取消选择动画运行并且蓝色选择逐渐淡出时,复选标记会出现并正确且透明地显示。取消选择动画完成且蓝色全部消失后,也许在选择颜色完全消失后 1/10 秒,复选标记附件“自动”变为不透明,无需进一步的用户输入。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if ( self.editing )
    {
    }
    else 
    {
        [self.myTableView deselectRowAtIndexPath:indexPath animated:YES];
        UITableViewCell *cell = [self.myTableView cellForRowAtIndexPath:indexPath];

        // toggle the selection status of the selected row
        //
        NSNumber *rowObj = [NSNumber numberWithUnsignedInt:indexPath.row];
        if ( [self.selectedRows containsObject:rowObj] )
        {
            // currently selected, now de-select
            //
            cell.accessoryType = UITableViewCellAccessoryNone;
            [self.selectedRows removeObject:rowObj];
        }
        else 
        {
            // currently unselected, now select
            //
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
            [self.selectedRows addObject:rowObj];
        }
    }
}

我认为如果你移动它会更干净切换选择一段代码

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

and on didSelectRowAtIndexPath拨电至

[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

这样,您将在选择行后立即重新加载所选行,而无需调用 reloadData。 希望这可以帮助!

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

修改 tableView 中的 UITableViewCellaccessoryType 时出现问题:didSelectRowAtIndexPath: 的相关文章

  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • MKMapView 中显示多个注释标注

    是否可以同时打开多个标注 代码 void mapViewDidFinishLoadingMap MKMapView theMapView for id
  • 如何添加授权以从新钥匙串对应用程序进行代码签名,而无需任何人工交互

    我正在尝试使用特定证书自动化构建 iPhone 应用程序的过程 因此 想象一下 如果不同的用户将他们的证书上传到系统中 并且可以立即用于代码签名 我想在没有任何交互的情况下做到这一点 我也不想用不同的用户证书弄乱系统或登录钥匙串 为此我有
  • Monotouch 和本机 iOS 代码

    是否可以将使用 monotouch 编译的 C 库与单个应用程序中的 Objective C 前端链接起来 或者该应用程序必须是全部还是全无 这是可能的 但您不会从 MonoTouch 工具获得任何帮助 并且您无法摆脱这样一个事实 您仍然需
  • 访问iOS 7隐藏的UITableViewCellScrollView?

    苹果改变了UITableViewCelliOS 7 中的层次结构 使用iOS 6 1 SDK
  • 如何使用 iPhone SDK 加快或减慢背景音乐曲目的速度?

    是否有一种简单的方法来控制使用音频队列服务播放的声音文件循环的播放速度 节奏 例如 如果游戏正在播放背景音乐 我想让BGM随着时间的流逝而加快 但不改变音乐的音调 谢谢 据我所知 没有什么简单的方法可以做到这一点 在 Mac 上 您可能会使
  • iPhone:在命令行 (Mac OS X) 中压缩 .app 文件会删除 CodeSigning

    我正在尝试使用 TeamCity 对我的 iPhone 应用程序进行简单的构建自动化 但遇到了这个棘手的问题 当我从构建文件夹中手动拾取并安装 app 文件时 效果很好 与 iTunes 顺利同步 我可以在手机上看到该应用程序 但是 当我尝
  • 检测 UITableView 中的水平平移

    我正在使用 UIPanGestureRecognizer 来识别 UITableView 中的水平滑动 准确地说是在单元格上 尽管它已添加到表格本身 然而 这个手势识别器显然窃取了桌子上的触摸 我已经让 pangesturerecogniz
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • 自定义 UISearchDisplayController

    替代文本 http img210 imageshack us img210 5992 searchdisplaycontroller png http img210 imageshack us img210 5992 searchdispl
  • AVAssetExportSession 输出文件

    AVAssetExportSession 输出文件应该是什么样子 我正在尝试压缩 ALAsset 项目中的视频 但它不起作用 我猜输出文件与它有关 这是我正在使用的代码 NSString destinationPath NSHomeDire
  • 如何确定 UINavigationController 中工具栏的高度?

    我有一个带有由 UINavigationController 呈现的工具栏的视图 当我处理 UIKeyboardWillShowNotification 时 我将整个屏幕向上滚动键盘的高度 问题是当显示键盘时 底部工具栏不显示 所以我只需将
  • 在 iPhone 模拟器中从硬盘读取文件

    是否可以将文件 从我的普通文件系统 读入在 iPhone 模拟器上运行的 iPhone 应用程序 据我所知 iPhone 本身没有 用户可访问的 文件系统 但这只是为了测试 并且只能在模拟器中运行 该文件将是一个可以在应用程序运行时编辑的文
  • Draggable UIView 在添加到 UIScrollView 后停止发布 TouchBegan

    在 Xcode 5 1 中我创建了一个简单的测试应用程序 https github com afarber ios newbie tree master ScrollContent对于 iPhone 结构是 scrollView gt co
  • 将 UIDatePicker 装入 UIActionSheet 中

    我正在尝试让带有 UIButton 的 UIDatePicker 显示在 UIActionSheet 中 不幸的是 它被剪掉了 整个日期选择器都不可见 我什至还没有尝试添加 UIButton 谁能建议让整个视图正确配合 我不确定如何添加正确
  • UIScrollView setContentOffset:动画:不起作用

    我有两个无限的 UIScrollViews 的问题 它们没有正确改变它们的偏移量 第一个 UIScrollView 中的项目与第二个 UIScrollView 中的另一个项目相对应 然后 我想将单击的项目放在第二位 并为两个 UIScrol
  • ng-submit 和 ng-click 在 ionic iPhone 应用程序中多次触发

    我正在尝试离子框架 它看起来非常好 但是 我在提交表单时遇到问题 表单触发两次 首先是按下提交按钮时 然后是点击屏幕上的任意位置 这种情况在 xcode 模拟器和我的 iphone 4gs 上都会发生 这就是我所做的 我使用以下命令安装侧菜
  • UITouch移动速度检测

    我正在尝试检测触摸移动的速度 但并不总能得到我期望的结果 补充 速度峰值太多 任何人都可以发现我是否在做一些时髦的事情或建议更好的方法吗 void touchesBegan NSSet touches withEvent UIEvent e

随机推荐

  • 带有 HTTPBody 输入流的 NSURLRequest:流在打开之前发送事件

    我想使用以下方式将大量数据发送到服务器NSURLConnection and NSURLRequest 为此 我创建了一对绑定的NSStreams 使用CFStreamCreateBoundPair 然后我将输入流传递给NSURLReque
  • 如何使用YouTube API检查视频是否受到限制?

    当嵌入这个Youtube 视频 https www youtube com embed dYQ2IyMuPes例如 我们得到This video contains content from who has blocked it from d
  • 旋转的 3d 导航栏

    我正在尝试使用纯 CSS 以及变换 过渡和透视来创建 3d 导航栏 这是我的代码 navbar fixed bottom background transparent navbar perspective width 100 height
  • 最令人烦恼的解析是否带有限定 ID?

    考虑 struct Foo enum bar explicit Foo int struct Baz explicit Baz Foo Baz b Foo Foo bar 1 第 1 行是最令人烦恼的解析吗 Foo bar is a 合格的
  • 检查继承函数的函数签名

    我需要检查容器擦除函数是否返回迭代器 我通常会通过例如检查函数签名促进 但在 boost 类 例如 flat set 的情况下 擦除是继承的 因此检查找不到 但我确实需要它 SFINAE 检查继承的成员函数 https stackoverf
  • Emoji 转 JSON 编码,发布到 Web 服务器

    请帮助我解决发布 JSON 解码表情符号字符时遇到的问题 我有一个 UITextView 这个文本视图可能有表情符号字符 我将数据发布到 Web 服务器 其中 UITextView text 以 JSON 形式呈现 问题是当文本具有表情符号
  • SWIG 从不同模块导入生成的类并打包到当前类中

    我在获取 SWIG 时遇到困难类型映射 java包 http www swig org Doc1 3 Java html java directors typemaps才能正常工作 我尝试制作一个简单版本的问题 但即使这样似乎也失败了 fo
  • python 3 中的 types.ClassType 发生了什么?

    我有一个脚本 我在其中做了一些神奇的事情来动态加载模块 并实例化模块中找到的第一个类 但我不能使用types ClassTypePython 3 中不再这样了 现在执行此操作的正确方法是什么 我想到了 看起来类的类型是 type 下面是如何
  • 如何针对堆栈测试新的 ghc 构建

    我已经构建了 ghc HEAD 我想尝试构建所有 stackage lts 或 nightly 看看它能做多少事情 我所说的任何内容都无法说服 stack 使用我的新 ghc 构建任何东西 我尝试设置如下 stack setup 8 1 2
  • Xamarin 表单,拉动刷新 UWP 中的 listView

    在 Windows 桌面上运行时如何刷新 Xamarin 表单列表 看来我们无法拉动刷新 谢了 Fran ois 在 Xamarin Forms 上的 ListView 中拉动刷新需要您实现这 3 件事 IsPullToRefreshEna
  • 如何从 PowerShell 激活 Conda 环境?

    Version Anaconda https en wikipedia org wiki Anaconda Python distribution 4 8 3 我不能做什么 我不能activate来自 PowerShell 的任何环境 co
  • zlib 库的 pip 安装失败

    当我尝试通过以下命令安装 zlib 时 sudo pip install zlib 我遇到以下错误 Could not find any downloads that satisfy the requirement zlib Cleanin
  • Firebase Cloud Messaging 不同的键

    当前生成的密钥是什么google services json制作项目时的文件 当前密钥 Web API 密钥和服务器密钥之间有什么区别 在哪里可以找到当前密钥 FCM 控制台 我找不到它 目前还没有文档清楚地讨论了在google servi
  • 为什么 core.async go 块返回一个通道?

    我理解 去块 无论是go or go loop或可能的其他构造 返回一个通道 但我一直不明白这个频道的目的 我想知道如何使用它 也许我在不需要的时候创建了额外的频道 我使用的返回通道go block 作为句柄 我可以将其传递给另一个想要与完
  • [Environment]::SetEnvironmentVariable 未永久设置

    From 设置 Windows PowerShell 环境变量 https stackoverflow com a 2571200 3416774 我用它作为管理员 PS D gt Environment SetEnvironmentVar
  • 使用 javascript 获取已安装扩展的列表

    我想弄清楚是否可以使用 javascript 获取所有已安装的浏览器扩展的列表 我明白这是可能的 chrome 使用 chrome extension 参考 火狐 使用 Application extensions all 但在 IE 和
  • F# 活动模式作为非静态成员

    我不确定是否允许非静态公共成员活动模式 但您可以定义它们而不会引起编译器的抱怨 如果允许的话 匹配的语法是什么 编译器给我 FooBar2 doSomething 中的 Foo 类型不匹配 期待一个 a gt Choice lt b c g
  • 在 onHandleIntent 之前捕获 IntentService Intent

    我有一个 IntentService 它将要进行的 Web 服务调用排队 我将一个整数作为 Extra 传递给每个 Intent 它定义了要进行的 Web 服务调用的类型 我想创建一种情况 如果执行特定 Web 服务的 Intent 被传递
  • javascript有API这样的概念吗

    我主要用java编程 几乎没有javascript知识 我的问题是 javascript 是否允许使用 API 例如 我有一个 javascript 应用程序 我希望向其中公开一些函数 例如中间件 API 集 这个中间件也可以用 javas
  • 修改 tableView 中的 UITableViewCellaccessoryType 时出现问题:didSelectRowAtIndexPath:

    我有一个透明的表格视图 带有子视图 UIImageView 的 UIViewController 和位于 UIImageView 同级顶部的另一个子视图 UITableView 其背景 clearColor UITableViewCells