2014-07-26 33 views
7

UITextView'un metin rengini değiştirmek için colorWithPatternImage kullanıyorum. IO7'de çalışıyor, ancak IO6'da çalışmıyor.colorWithPatternImage io6 çalışmıyor musunuz?

İşte benim Kod geçerli: -

text.textColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"ColorName.png"]]; 
+1

"Çalışmıyor" u tanımlayın. – rmaddy

+0

http://stackoverflow.com/questions/9609688/ios-5-1-uicolor-colorwithpatternimage-background-color-draws-solid-black –

+0

onun hakkında metin arka plan istiyorum textColor. – iBhavin

cevap

6

-iOS7 önce iOS 6 ve 7 arasında derece değişti UITextView internal'leri, UITextView metin rengi için desen renkleri desteklemedi. IOS 7'deki model renkleri için çeşitli bileşenler destek aldı ve UITextView bunlardan biriydi.

+0

colorWithPatternImage UITextView backgroundColor ile çalışır, ancak textColor ile çalışmaz. – iBhavin

+1

Evet - çok sayıda bileşen backgroundColor için desen renkleri destekledi, ancak iOS 7'ye kadar ön plan renkleri olarak destek almadılar. – Simon

+0

Bunun için herhangi bir alternatif var mı? – iBhavin

0

Gerçekten, colorWithPatternImage, iOS 6'daki kullanım amacınıza uygun değildir. Maske olarak UITextView'un metnini kullanan bir çözüm için giderdim. Bu soruya David'in cevabını kontrol edin: Transparent UILabel textColor on superview.superview (sort of). Görmek istediği dizeden bir yol çiziyor ve içinden bir maske yaratıyor. Bütünlük kontrolü için ayrıca iOS UIView subclass, draw see-through text to background.

Umut bu

DÜZENLEME

UITextView görünümünü "taklit" için bunu sadece başarmış iOS 6'da bir UITextView ile peşinde maskeleme etkiyi o kadar kolay olmadığı anlaşıldı yardımcı olur bir UIView aşağıdaki yaparak: Burada

UIView *tView = [[UIView alloc] initWithFrame:self.view.frame]; 

tView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.jpg"]]; 

NSString *text = @"Lorem ipsum..."; 

CATextLayer *mask = [CATextLayer layer]; 

mask.frame = frame; 

mask.backgroundColor = [UIColor colorWithWhite:0 alpha:0].CGColor; 
mask.foregroundColor = [UIColor colorWithWhite:0 alpha:1].CGColor; 
mask.string = text; 
mask.wrapped = YES; 
mask.fontSize = 25; 

tView.layer.mask = mask; 

[self.view addSubview:tView]; 

bu görünümden örnek bir resimdir

enter image description here

Bu görünümü kaydırmak için bir UIScrollView içine yerleştirmeniz gerekir.

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:self.view.frame]; 
// Setup tView as above 
[scroll addSubview:tView]; 
[self.view addSubview:scroll]; 

bu yolu takip ederseniz onlar bakmak böylece kaydırma görünümünde ve tView ile uğraşmak ve bir UITextView gibi davranması gerekir.

+0

evet, UE'ye ek olarak UE'ye uygulanabilir ancak UITextView için geçerli değildir. Bunu textColor'da uygulamak istiyorum. – iBhavin