Ios CoreText-点击时更改文本颜色

Ios CoreText-点击时更改文本颜色,ios,core-text,Ios,Core Text,在实现快速滚动技术时,我使用CoreText将文本绘制到我的表视图单元格中。我的文本中的链接是不同的颜色,并且会对点击做出响应,但我不知道如何使链接看起来像是被点击的,即点击时更改颜色,然后再更改回去。我已经在多个应用程序中看到了这一点,但不确定它是如何实现的。这可以用CoreText来完成吗,或者我需要使用其他东西吗 我知道这可以通过UILabels来完成,但这违背了直接在单元格的内容视图中绘制文本的目的 谢谢。每次要更改文本的颜色时,都需要向绘制文本的视图发送-setNeedsDisplay

在实现快速滚动技术时,我使用CoreText将文本绘制到我的表视图单元格中。我的文本中的链接是不同的颜色,并且会对点击做出响应,但我不知道如何使链接看起来像是被点击的,即点击时更改颜色,然后再更改回去。我已经在多个应用程序中看到了这一点,但不确定它是如何实现的。这可以用CoreText来完成吗,或者我需要使用其他东西吗

我知道这可以通过UILabels来完成,但这违背了直接在单元格的内容视图中绘制文本的目的


谢谢。

每次要更改文本的颜色时,都需要向绘制文本的视图发送-setNeedsDisplayInRect:。此外,设置与文本颜色对应的变量

当视图重新绘制并调用drawLayer:inContext:,请确保
kCTForegroundColorAttributeName
设置为正确的颜色(基于您设置的变量)并重新绘制文本


您也可以使用类似的技术,但使用UIKit/UIStringDrawing.h中的方法,而不是核心文本。

这可能会对您有所帮助。


h1:悬停{
颜色:红色;
} 
你好

所以我假设在触摸开始时调用此方法,然后在触摸结束时将文本重新绘制回其原始颜色?是的!您也可以使用-setNeedsDisplay:重新绘制整个单元格,如果您手头上没有文本链接的rect,但请注意这将导致更多的绘图(速度较慢)。请不要仅将代码作为答案发布,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票