gpt4 book ai didi

ios - 更改特定单元格的 UIButton

转载 作者:行者123 更新时间:2023-11-29 02:25:20 27 4
gpt4 key购买 nike

更新特定 uitableviewcell 中的 uibutton 时出现问题。当我更改按钮颜色时,它会更新 uitableview 中的每个按钮。在下面附上我的代码:

  PFObject *post = [self.objectArray objectAtIndex:indexPath.section];

cell.likeBtn.layer.cornerRadius = 5.0f;

//To access button methods
[cell.likeBtn setTag:indexPath.section];


NSMutableDictionary *attributes = [NSMutableDictionary
dictionaryWithDictionary:[[TMMemoryCache sharedCache] objectForKey:post.objectId]];


BOOL likedByCurrentUser = [[attributes objectForKey:@"likedByCurrentUser"] boolValue];

if (likedByCurrentUser) {

cell.likeBtn.backgroundColor = [UIColor flatRedColor];
[cell.likeBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[cell.likeBtn setTitle:@"Liked" forState:UIControlStateNormal];
}else{

//NSLog(@"Did not like %@", post.objectId);
cell.likeBtn.backgroundColor = [UIColor flatBlueColor];
[cell.likeBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[cell.likeBtn setTitle:@"Like" forState:UIControlStateNormal];
}

他们是仅在一个特定单元格中更新 uibutton 的更好方法吗?

最佳答案

有两种方法可以完成您想要的操作,具体取决于更新信息的传入方式:

  1. cellForRowAtIndexPath: 中配置单元格时。
  2. 让单元格管理自己的内容。

通常情况下,#1 是必经之路。当新信息进入您的 UITableViewController 时,请执行以下操作之一:

  1. 调用reloadData强制刷新整个表。
  2. 找出需要更新的单元格并调用 reloadRowsAtIndexPaths:withRowAnimation: 并传入正确的索引路径值。

无论哪种情况,您都需要在 tableView:cellForRowAtIndexPath: 方法中的某个位置正确设置按钮。通常,我创建 UITableViewCell 子类来接受对象并使用该对象中的数据配置自身。这样,我的 UITableViewController 中处理单元格配置的代码就更少了。

tableView:cellForRowAtIndexPath: 的典型实现如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
Cell *cell = [tableView dequeueReusableCellWithIdentifier:@"item" forIndexPath:indexPath];
[cell configureForItem:self.dataSource[indexPath.row]];
return cell;
}

每个 UITableViewCell 实例都有自己的按钮,该按钮将由 self.dataSource[indexPath.row] 中的对象传递的数据进行配置。这样,当单元被回收时,按钮不仅不会被传递,而且每次需要新单元时都会回收并配置一个新按钮。

关于ios - 更改特定单元格的 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com