我正在加載自定義的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