De hecho, encontré otra forma sin usar una vista web, pero tenga en cuenta que esto usa una API privada y puede ser rechazada en la tienda de aplicaciones:
EDITAR: ¡ Mi aplicación fue aprobada por Apple aunque el uso de la API privada!
Primero declare una categoría en UITextView con los métodos
- (id)contentAsHTMLString;
- (void)setContentToHTMLString:(id)arg1;
Simplemente están haciendo lo siguiente:
- (id)contentAsHTMLString;
{
return [super contentAsHTMLString];
}
- (void)setContentToHTMLString:(id)arg1;
{
[super setContentToHTMLString:arg1];
}
Ahora escribe un método para enlaces coloridos:
- (void) colorfillLinks;
{
NSString *contentString = [self.textViewCustomText contentAsHTMLString];
contentString = [contentString stringByReplacingOccurrencesOfString:@"x-apple-data-detectors=\"true\""
withString:@"x-apple-data-detectors=\"true\" style=\"color:white;\""];
[self.textViewCustomText setContentToHTMLString:contentString];
}
Establece el atributo de estilo con un color específico en todo tipo de enlaces.
UITextViews se procesan en Webiview como a través de divs, por lo que incluso podría ir más allá y colorear cada tipo de enlace por separado:
<div><a href="http://www.apple.com" x-apple-data-detectors="true" style="color:white;" x-apple-data-detectors-type="link" x-apple-data-detectors-result="0">http://www.apple.com</a></div>
El x-apple-data-detectors-type="link"
es el indicador del tipo exacto de enlace.
EDITAR
En iOS7
esto ya no funciona. En iOS7, puede cambiar fácilmente el color del enlace de UITextViews configurando el color del tinte. No deberías llamar
- (id)contentAsHTMLString;
más, obtendrá una excepción. En su lugar, haga lo siguiente si desea admitir iOS 7 y versiones anteriores:
- (void) colorfillLinks;
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
self.tintColor = [UIColor colorWithRed:79.0/255.0
green:168.0/255.0
blue:224.0/255.0
alpha:1.0];
} else if(![self isFirstResponder ]) {
NSString *contentString = [self contentAsHTMLString];
contentString = [contentString stringByReplacingOccurrencesOfString:@"x-apple-data-detectors=\"true\""
withString:@"x-apple-data-detectors=\"true\" style=\"color:#DDDDDE;\""];
[self setContentToHTMLString:contentString];
}
}