获取 UITableView 的 IndexPath 以更改 UIView 的颜色

Posted

技术标签:

【中文标题】获取 UITableView 的 IndexPath 以更改 UIView 的颜色【英文标题】:Get IndexPath of UITableView to change the color of a UIView 【发布时间】:2016-09-08 15:51:37 【问题描述】:

我在tableViewCell 的左侧添加了一个徽章,如this example 所示。 然后在成功完成之后,我转向下一件事,即在单​​元格上向左/向右滑动并显示一些选项。我已经通过在 GitHub 上使用 this library 成功配置了它。现在,当我继续前进时,我在右滑动和用户点击它时添加了一个取消选项,我希望该徽章 (UIView) 颜色消失红色。 我已将绿色添加为appointmentCell.appointmentStatusIndicatorBadge.layer.backgroundColor = [UIColor greenColor].CGColor;,因此如果我在didTriggerLeftUtilityButtonWithIndex 中再次调用此行,它不会选择appointmentStatusIndicatorBadge,因为它是在PatientAppointmentTableViewCell 中创建的@property (weak, nonatomic) IBOutlet UIView *appointmentStatusIndicatorBadge;,它正在用于PatientViewController

这是我需要访问它的完整方法:

- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index 
    switch (index) 
        case 0:
        
            NSLog(@"Just Tapped Cancel");
//here I want to change the color to red
            [cell hideUtilityButtonsAnimated:YES];
            break;
        
        default:
            break;
    

我试图通过创建一个新的类对象来做到这一点,但这是一件愚蠢的事情。现在的问题是我无法跟踪indexPath,因为我不再在TableView 的委托方法中。那我该怎么做呢?

编辑 根据这里的评论是我的 tableViewCell 的 .h 代码。我没有在 .h 文件中做任何事情。

#import <UIKit/UIKit.h>
#import "SWTableViewCell.h"

@interface PatientAppointmentTableViewCell : SWTableViewCell
@property (weak, nonatomic) IBOutlet UIView *appointmentStatusIndicatorBadge;
@end

【问题讨论】:

你能展示你的表格单元格类吗? @Mr.UB 查看我的问题的编辑版本。 你有一个变量可以用来存储一个标志来查看用户是否按下了取消? @Mr.UB 我知道当用户使用 SWTableViewCell 类的 didTriggerLeftUtilityButtonWithIndex 委托方法按下取消时。我只想知道它按下取消按钮的 indexPath。 【参考方案1】:

使用以下代码获取单元格的indexPath:

NSLog(@"Just Tapped Cancel");
NSIndexPath *indexPath = [tableView indexPathForCell:cell];

cell 是来自以下方法的cell

- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index 

方法。

【讨论】:

以上是关于获取 UITableView 的 IndexPath 以更改 UIView 的颜色的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 方法“indexPathForRowAtPoint:”的奇怪行为

使用 Alamofire 加载图像非常慢

Tableview 禁用单元格中的用户交互

无法更改 UILabel 的文本

如何使用tableview删除核心数据中的数据

在 swift 4 中将数据解析为 vc 始终为零