通过在 modifyCell 中用新的 sf 符号 chevron.right 替换 V 形颜色来更改它
Posted
技术标签:
【中文标题】通过在 modifyCell 中用新的 sf 符号 chevron.right 替换 V 形颜色来更改它【英文标题】:Change chevron color by replacing it in modifyCell with new sf symbol chevron.right 【发布时间】:2019-12-05 18:41:44 【问题描述】:我想将系统图像chevron.right
用作我的附件图标并替换当前存在的图标以便我可以控制颜色。现在ios 13+
的色调没有像文本那样更新,以前的版本可以工作。我需要在objective c
中完成此操作,而不是快速,使用系统映像sf symbol
chevron.right
。
- (void)modifyCell:(UITableViewCell*)tableCell andIndex:(NSIndexPath *)indexPath
Event *event = [self findDataInRow:[self findRow:indexPath]];
if(event != nil)
EventsTableViewCell *eventTableCell = (EventsTableViewCell *)tableCell;
if(eventTableCell != nil)
【问题讨论】:
【参考方案1】:当您返回单元格时,您需要操作出队的UITableViewCell
的accessoryView
的颜色:
- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
所以在一个简单的数据源实现中。
@implementation XViewController
- (UIColor *)colorForIndex:(NSInteger)index
NSArray *colors = @[UIColor.redColor,UIColor.greenColor,UIColor.blueColor];
return colors[index % 3];
- (void)viewDidLoad
[super viewDidLoad];
self.view.tintColor = [UIColor orangeColor];
- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = @"hello world";
cell.imageView.image = [UIImage systemImageNamed:@"pencil.slash"];
UIImageView *accessory = [[UIImageView alloc] initWithImage:[UIImage systemImageNamed:@"pencil.and.outline"]];
accessory.tintColor = [self colorForIndex:indexPath.row];
cell.accessoryView = accessory;
return cell;
- (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return 6;
@end
选择您喜欢的系统映像,而不是 "pencil.and.outline"
,这只是为了证明它不是标准的 V 形。观察 LHS 单元图像采用 orange
的视图色调,而 RHS 上的辅助视图采用您想要的任何颜色。
【讨论】:
使用 chevron 的全部原因是因为在 iOS 13 中无法再更改附件图标的颜色。这非常有效。我不得不将它包装在@available(iOS 13.0, *)
中,但这正是我们所需要的。以上是关于通过在 modifyCell 中用新的 sf 符号 chevron.right 替换 V 形颜色来更改它的主要内容,如果未能解决你的问题,请参考以下文章