This might sound crazy, but... I'd put all the words into an array/list and populate the text of the UILabel repeatedly as needed. When you're on the next work, change that item in the array to have color.
Doesn't too crazy, and there'd be way less need for calculation. Just whenever it goes to the next word, you'd have to set the UILabel text again to reflect to newly highlighted word.