我正在加载自定义的nib文件来自定义UITableView的单元格。自定义笔尖具有通过标记从主视图引用的UILabel。我想知道当单元格被选为不同的颜色时,是否可以更改UILabel的阴影颜色,因此它看起来不像截图中的样子。自定义单元格选择颜色的UILabel阴影
9
A
回答
11
你可以在委托变更标签的阴影颜色-tableView:willSelectRowAtIndexPath:
。例如:
-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor greenColor];
return indexPath;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor redColor];
}
16
我更喜欢在TableCell代码内部改变阴影颜色以不污染代表。您可以覆盖此方法来处理它:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animate
{
UIColor * newShadow = highlighted ? [UIColor clearColor] : [UIColor whiteColor];
nameLabel.shadowColor = newShadow;
[super setHighlighted:highlighted animated:animate];
}
0
至少在上面显示的示例中,简单的答案是不首先显示阴影。由于无论如何你都看不到白色,因此请将shadowColor设置为-clearColor。
如果你确实需要阴影,重写-setHighlighted方法是最好的解决方案。它将代码保存在单元格中,我认为这比从表格视图中处理它好得多。
2
我有同样的问题,并没有上述解决方案相当适合我 - 我不想子类UITableViewCell
,也有一些棘手的选择/突出显示的状态更改编程完成,这并没有与上述解决方案很好地发挥作用。
MySolution:
我到底做了什么是使用第二UILabel
主要UILabel
下充当影子。对于那个'阴影'UILabel
,你可以设置'突出显示颜色'为'清除颜色'。
很明显,每次更新主标签时都必须更新阴影标签。在许多情况下,付出的代价并不是很大。
希望有帮助!
相关问题
- 1. 自定义阴影颜色
- 2. 自定义表格视图单元格选择字体颜色
- 3. iphone sdk如何改变选择单元格的自定义单元颜色?
- 4. jqGrid与自定义单元格颜色
- 5. 用阴影色绘制UIlabel
- 6. JavaFX的拾色器自定义颜色表格单元格
- 7. 在内阴影和交替单元格颜色
- 8. UICollectionViewCell阴影颜色
- 9. 更改NatTable单元格选择颜色
- 10. 在uitableview中选择时更改自定义单元格图像颜色?
- 11. 自定义颜色选择器TinyMCE
- 12. 自定义文本选择颜色
- 13. 选择自定义Datagridviewcolumn背景颜色
- 14. SVG:阴影的颜色
- 15. 颜色选择器中的自定义颜色
- 16. WPF颜色选择器 - 添加新的自定义颜色
- 17. UILabel带有图层阴影的文字颜色透明度?
- 18. 在单元格内选择自定义UITextView时选择单元格
- 19. 下拉的阴影颜色和选择焦点/ onblur
- 20. 从图像中选择不同颜色的阴影c#
- 21. ListView项目的选择颜色带阴影
- 22. iOS:自定义颜色作为UILabel背景颜色
- 23. CSS文字阴影颜色
- 24. 的UITableView单元格背景自定义颜色
- 25. 更改ListView Android自定义的单元格颜色他们
- 26. 更改自定义单元格的背景颜色
- 27. WPF datagrid - 每个单元格的自定义颜色
- 28. HeatMap具有每个单元格的自定义颜色
- 29. 用桌子的单元格标题颜色自定义jtable cellrenderer
- 30. 以编程方式在颜色选择器中向下移动颜色阴影?
此答案对突出显示的单元格状态不起作用(即,如果用户按下单元格但未释放)。不幸的是,杰森的回答是我见过的最好的处理这种情况的最好答案。不幸的是,它涉及到子类。您可能还需要覆盖setSelected: – Prometheus 2012-05-01 23:17:53