获取 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 的颜色的主要内容,如果未能解决你的问题,请参考以下文章