ios - 如何在不重新加载 Objective-C 行的情况下更改行中的特定元素?

标签 ios objective-c uiswitch

我想更新 UITableView 中的一行 UiSwitch。我想以编程方式使用动画来打开和关闭它。

    NSIndexPath *indexPath = [[NSIndexPath indexPathForRow:0 inSection:lastSelectedCardSectionNumber] retain];
    newCell *cell = (newCell *)[self.myTableView dequeueReusableCellWithIdentifier:@"newCell" forIndexPath:indexPath];
    [cell.switch1 setOn:YES animated:YES];

但是上面的行不会改变状态,我必须重新加载行,这不会使 UiSwitch 状态随动画改变。


开关顶部有一个 View ,用户点击它可以更改开关的状态。但它应该只在某些情况下改变。因此我不允许用户更改它,我想以编程方式更改它。

最佳答案

问题在于您如何检索单元格。应该是:

newCell *cell = (newCell *)[self.tableView cellForRowAtIndexPath:indexPath];

不是这个:

newCell *cell = (newCell *)[self.myTableView dequeueReusableCellWithIdentifier:@"newCell" forIndexPath:indexPath];

前者获取已存在的单元格实例,但后者创建单元格的新实例。

关于ios - 如何在不重新加载 Objective-C 行的情况下更改行中的特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53457691/

相关文章:

iphone - Plist 中的凭据编辑(如果正确)

objective-c - 核心数据 : Strange faulting behavior when using lazy instantiation

ios - 当 block 内的 ivar 可能被释放时,管理内存的最佳方法是什么?

ios - 按钮和开关

jquery - 你能在没有 jQuery UI 的情况下制作toggleClass 动画吗?

ios - SDWebImage无法从NSDictionary加载图像

ios - 针对 iOS 8 SDK 构建的静态库与 Metal 框架链接

ios - 通过 userDefaults 在两个 View Controller 之间共享数据

ios - NSRegularExpression 错误,我不能使用正则表达式

ios - 无法从 UIWebView 完全回收内存使用