Saya memang menemukan cara lain tanpa menggunakan tampilan web tetapi perlu diingat bahwa ini menggunakan API pribadi dan mungkin ditolak di appstore:
EDIT: Aplikasi saya disetujui oleh apel meskipun penggunaan api pribadi!
Pertama-tama deklarasikan kategori di UITextView dengan metode
- (id)contentAsHTMLString;
- (void)setContentToHTMLString:(id)arg1;
Mereka hanya melakukan hal berikut:
- (id)contentAsHTMLString;
{
return [super contentAsHTMLString];
}
- (void)setContentToHTMLString:(id)arg1;
{
[super setContentToHTMLString:arg1];
}
Sekarang tulis metode untuk tautan berwarna:
- (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];
}
Itu mengatur atribut gaya dengan warna tertentu pada semua jenis tautan.
UITextView dirender seperti Webiview melalui div sehingga Anda bahkan dapat melangkah lebih jauh dan mewarnai setiap jenis tautan secara terpisah:
<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>
Ini x-apple-data-detectors-type="link"
adalah indikator untuk jenis tautan yang tepat
EDIT
Pada iOS7
ini bekerja tidak lagi. Di iOS7 Anda dapat dengan mudah mengubah warna tautan UITextView dengan menyetel warna tint. Anda tidak harus menelepon
- (id)contentAsHTMLString;
lagi, Anda akan mendapatkan pengecualian. Sebagai gantinya lakukan hal berikut jika Anda ingin mendukung iOS 7 dan yang lebih lama:
- (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];
}
}