如何在iphone中突出显示UILabel的单词

Posted

技术标签:

【中文标题】如何在iphone中突出显示UILabel的单词【英文标题】:How to Highlight word of UILabel in iphone 【发布时间】:2011-10-18 06:26:15 【问题描述】:

我正在使用定时器在 UILabel 上加载歌曲的歌词。现在我想用不同的颜色突出显示该标签的每个单词。我该怎么做?

我正在显示这样的歌词

- (void)setCurrentAudioProgress:(NSTimeInterval)time duration:(NSTimeInterval)duration

    float progress = time/duration;
    long currentPlaybackTime = audioPlayer.currentTime;
    long remainingTime = (duration-time);

    int remainingHours = (remainingTime /3600);

    int remainingMinutes = ((remainingTime /60 -remainingHours*60));

    int remainingSeconds = (remainingTime %60);


    int currentHours = (currentPlaybackTime / 3600);

    int currentMinutes = ((currentPlaybackTime / 60) - currentHours*60);
    int currentSeconds = (currentPlaybackTime % 60);

    currentTimeLabel.text = [NSString stringWithFormat:@"%i:%02d:%02d", currentHours, currentMinutes, currentSeconds];

    remainingTimeLabel.text = [NSString stringWithFormat:@"%i.%02d.%02d", remainingHours    , remainingMinutes, remainingSeconds];

    [progressView setProgress:progress];

    for (int i = 0; i<[lyricsArray count]; i++) 

        NSString  *lyricsTime = [[lyricsArray objectAtIndex:i]valueForKey:@"startTime" ] ;

        if ([currentTimeLabel.text isEqualToString:lyricsTime]) 

            songLyricsLabel.text = [NSString stringWithFormat:@"%@",[[lyricsArray objectAtIndex:i]valueForKey:@"songLyrics" ]];         
                     
              

【问题讨论】:

嗨。你有解决办法吗? 【参考方案1】:

你必须使用技巧,比如这个标签不支持突出显示

iPhone "slide to unlock" animation

【讨论】:

【参考方案2】:

您可以在想要突出显示标签文本时使用以下内容,然后为相应的标签添加以下行

        label.highlighted = YES;
label.highlightedTextColor = [UIColor blueColor];

对于不同的颜色,您可以添加一个带有颜色名称的数组并随机选择....

【讨论】:

我要突出显示UILabel的每一个字 当您设置 label.highlighted = YES 时,它将使用指定的颜色突出显示标签的整个文本。但是如果你想用不同的颜色突出显示每个单词,那么它就不起作用了,你需要添加一个函数,它会一个一个地获取每个字符并为其设置颜色....

以上是关于如何在iphone中突出显示UILabel的单词的主要内容,如果未能解决你的问题,请参考以下文章

iPhone iOS如何更改UITextView中某些单词的颜色?

在表格中突出显示 UILabel

如何使用 Python 在 QTextEdit 中动态突出显示单词?

仅突出显示 UILabel 中的文本

如何在UILabel中制作首字母大写字母?

如何在传入的文本中突出显示某些单词?