Как установить шрифт ссылки для TTStyledTextLabel

Итак, я довольно новичок в Three20, но пока преимущества перевешивают боль в моей заднице, которая нужна для того, чтобы все заработало.

Я использую некоторые TTStyledTextLabels, и мне нужно использовать определенный шрифт для ссылок. Я переопределил TTDefaultStyleSheet и добавил новый стиль, например так:

- (TTStyle*)futuraStyle {
    return [TTTextStyle styleWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:20] color:kColorTextLink next:nil];
}

Я могу использовать теги, чтобы применить этот стиль к обычному тексту, но, похоже, он не влияет на ссылки.

Я обнаружил, что если я добавлю класс стиля непосредственно в ссылки, как в

<a href="url" class="styleName">link!</a>

тогда ссылки появляются в правильном шрифте. Тем не менее, они больше не поддаются! WTF?

1 ответ

Решение

Понял!

задайте имя в ссылке с двойной чертой, после чего стиль ссылки будет вызываться с параметром UIConstrolState, и все будет работать нормально:

- (TTStyle*)futuraStyle:(UIControlState)state{
 if(state==UIControlStateNormal){
    return [TTTextStyle styleWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:20] color:kColorTextLink next:nil];
 }else{
    return [TTTextStyle styleWithFont:[UIFont fontWithName:@"Futura-CondensedMedium" size:20] color:kColorTextLinkHiglighted next:nil];
 }
}

и в вашем тексте:

<a href="url" class="futuraStyle:">link!</a>
Другие вопросы по тегам