Bir web görünümü kullanmadan gerçekten başka bir yol buldum, ancak bunun özel API kullandığını ve uygulama mağazasında reddedilebileceğini unutmayın:
DÜZENLEME: Özel api kullanımına rağmen uygulamam apple tarafından onaylandı!
İlk önce yöntemlerle UITextView üzerinde bir kategori bildirin
- (id)contentAsHTMLString;
- (void)setContentToHTMLString:(id)arg1;
Sadece şunları yapıyorlar:
- (id)contentAsHTMLString;
{
return [super contentAsHTMLString];
}
- (void)setContentToHTMLString:(id)arg1;
{
[super setContentToHTMLString:arg1];
}
Şimdi renkli bağlantılar için bir yöntem yazın:
- (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];
}
Stil niteliğini tüm bağlantı türlerinde belirli bir renkle ayarlar.
UITextView'lar Webiview gibi div'ler aracılığıyla oluşturulur, böylece daha da ileri gidebilir ve her bağlantı türünü ayrı ayrı renklendirebilirsiniz:
<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>
Bağlantının x-apple-data-detectors-type="link"
tam türünün göstergesidir
DÜZENLE
Açık iOS7
bu artık çalışmıyor. İOS7'de, ton rengini ayarlayarak UITextView'ların bağlantı rengini kolayca değiştirebilirsiniz. Aramamalısın
- (id)contentAsHTMLString;
artık bir istisna alacaksın. Bunun yerine, iOS 7 ve altını desteklemek istiyorsanız aşağıdakileri yapın:
- (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];
}
}