Tôi đang tạo ứng dụng iOS có nhãn. Tôi muốn đặt hai màu. Một cho phần đầu tiên và màu sắc khác cho phần còn lại.
Tôi đã nhìn thấy một số thư trong Stack over flow, TTTAttributedLabel có khả năng đặt nhiều màu thành văn bản. Văn bản của tôi sẽ giống như "ABC> def". Đối với "ABC", tôi muốn đặt màu nâu và "def", tôi muốn đặt màu trắng.
Tôi làm cách nào để thiết lập điều đó?iOS - Sử dụng TTTAttributedLabel để đặt hai văn bản màu
Trả lời
NSString* text = @"ABC > def";
attributedLabel = [[[TTTAttributedLabel alloc] initWithFrame:frame] autorelease];
attributedLabel.numberOfLines = 0;
attributedLabel.lineBreakMode = UILineBreakModeWordWrap;
attributedLabel.fontColor = [UIColor brownColor];
[attributedLabel setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:^(NSMutableAttributedString *mutableAttributedString) {
NSRange whiteRange = [text rangeOfString:@"def"];
if (whiteRange.location != NSNotFound) {
// Core Text APIs use C functions without a direct bridge to UIFont. See Apple's "Core Text Programming Guide" to learn how to configure string attributes.
[mutableAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(id)[UIColor whiteColor].CGColor range:whiteRange];
}
return mutableAttributedString;
}];
[attributedLabel sizeToFit]; //this may not be needed if the frame provided is large enough
Tìm kiếm "def" trong chuỗi của bạn và đặt màu nền trước của văn bản thành màu trắng cho phạm vi đó. Hi vọng điêu nay co ich. Tôi chỉ mới học được điều này ngày hôm qua. Đến câu hỏi của bạn trong khi cố gắng tìm ra nó cho bản thân mình.
Bạn có thể sử dụng TTTRegexAttributedLabel có sẵn tại: https://github.com/kwent/TTTRegexAttributedLabel. (Dựa trên TTTAttributedLabel nhưng dễ sử dụng hơn với các cụm từ thông dụng)
//SET FONT ONLY ON FIRST MATCH REGEX
TTTRegexAttributedLabel *label = [[TTTRegexAttributedLabel alloc] init];
label.textColor = [UIColor whiteColor];
NSString *s = @"ABC > def";
[self.label setText:s withFirstMatchRegex:@"^[a-zA-Z ]*>"
withFont:[UIFont systemFontOfSize:12]
withColor:[UIColor brownColor]];
Cảm ơn bạn đã cung cấp câu trả lời. Vấn đề của tôi được giải quyết bằng cách sử dụng TTTAttributedLabel. Trong tương lai, tôi sẽ ghi nhớ sử dụng thư viện mà bạn đề nghị. – Satyam
- 1. Văn bản màu JComboBox hai màu
- 2. Hai màu trong một trường văn bản bằng cách sử dụng Actionscript 3
- 3. Cách hiển thị văn bản có nền hai màu?
- 4. Thay đổi màu đường viền của văn bản iOS
- 5. Thay đổi màu văn bản của thanh tìm kiếm ios
- 6. Tạo màu liên kết giống như màu văn bản mà không biết màu văn bản?
- 7. Làm cách nào để đặt màu của nhãn (văn bản màu) trong Java?
- 8. đặt màu và kích thước văn bản html bằng cách sử dụng javascript
- 9. Nhãn UIL có hai văn bản màu khác nhau
- 10. UILabel với văn bản của hai màu sắc khác nhau
- 11. Tìm ra màu sắc văn bản dựa trên quan điểm nền iOS màu
- 12. Sử dụng nhiều màu văn bản trong chế độ xem văn bản của Android [Html.fromhtml()]
- 13. Cách đặt màu tùy chỉnh trong văn bản?
- 14. Hoạt ảnh màu văn bản
- 15. Cách đặt màu văn bản trong nút gửi?
- 16. Thay đổi màu văn bản
- 17. Sử dụng danh mục iOS để tạo Màu mới
- 18. Android - ActionBarSherlock - Đặt màu văn bản của văn bản trong menu phụ
- 19. Android - ActionBarSherlock - Đặt màu văn bản của văn bản trong menu
- 20. Cách đặt văn bản khi sử dụng XElement
- 21. Cách đặt văn bản bên trong TextView thành hai dòng?
- 22. Làm cách nào để thay đổi màu của văn bản trong UINavigationBar trên iOS 7?
- 23. Sử dụng tính năng Trợ năng văn bản lớn trong ứng dụng iOS
- 24. Văn bản Echo PHP Màu
- 25. cách nhận màu nền và màu văn bản hiện tại?
- 26. Selenium IDE: Làm thế nào để kiểm tra màu sắc văn bản sử dụng CSS
- 27. Làm thế nào Thay đổi văn bản giữ chỗ màu - iOS
- 28. Xóa: màu di chuột từ văn bản mà không đặt màu
- 29. C# - cách đặt văn bản trong hộp văn bản để hiển thị gợi ý khi hộp văn bản trống?
- 30. Thay đổi màu và màu của văn bản trong hộp văn bản
đừng quên trả lại mutableAttributedString ở cuối khối. – djibouti33
@ djibouti33 cảm ơn, không biết làm thế nào tôi bỏ lỡ điều đó. Đã chỉnh sửa câu trả lời để bao gồm điều đó ngay bây giờ. – DonnaLea