2014-07-26 14 views
7

Tôi đang sử dụng colorWithPatternImage để thay đổi màu chữ của UITextView. Làm việc tốt của nó trong IO7 nhưng không làm việc trong IO6.colorWithPatternHình ảnh không hoạt động trong io6?

Đây là Mã của tôi: -

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

Xác định "không hoạt động". – rmaddy

+0

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

+0

của nó về nền văn bản tôi muốn nó trên textColor. – iBhavin

Trả lời

6

Các bên trong của UITextView thay đổi vô cùng giữa iOS 6 và 7. Trước khi iOS7, UITextView không hỗ trợ màu sắc hoa văn cho các màu chữ. Một số thành phần đã nhận được hỗ trợ cho màu mẫu trong iOS 7 và UITextView là một trong số đó.

+0

colorWithPatternImage hoạt động với nền UITextViewColor nhưng không hoạt động với textColor. – iBhavin

+1

Có - rất nhiều thành phần hỗ trợ màu mẫu cho backgroundColor, nhưng chúng không nhận được hỗ trợ cho chúng như màu nền trước cho đến iOS 7. – Simon

+0

Có cách nào thay thế cho nó không ?? – iBhavin

0

Thật vậy, colorWithPatternImage không phù hợp với mục đích của bạn trong iOS 6. Tôi sẽ tìm giải pháp sử dụng văn bản của UITextView làm mặt nạ. Kiểm tra câu trả lời của David cho câu hỏi này: Transparent UILabel textColor on superview.superview (sort of). Anh ta tạo ra một con đường từ chuỗi anh ta muốn xem qua và tạo ra một mặt nạ từ nó. Để kiểm tra tính đầy đủ, hãy xem iOS UIView subclass, draw see-through text to background.

Hope this helps

EDIT

Hóa ra nó không phải là dễ dàng như vậy để đạt được hiệu quả mặt nạ bạn đang theo đuổi với một UITextView trong iOS 6. Tôi đã chỉ cố gắng "bắt chước" giao diện của UITextView bằng cách làm như sau vào một UIView:

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]; 

đây là một hình ảnh mẫu từ quan điểm cho rằng

enter image description here

Để cuộn chế độ xem này, bạn sẽ cần đặt nó vào bên trong UIScrollView.

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

Nếu bạn làm theo con đường này, bạn cần phải chơi xung quanh với quan điểm cuộn và tView để họ nhìn và cư xử giống như một UITextView.

+0

có nó có thể áp dụng cho UILable theo đó ans nhưng không để UITextView.I muốn áp dụng điều này trong textColor. – iBhavin

Các vấn đề liên quan