Một số phông chữ tùy chỉnh mà tôi đã tải lên ứng dụng của mình sẽ bị cắt khi hiển thị trong nhãn UILabel. Tôi có nhiều phông chữ tùy chỉnh mà tôi cần để hiển thị đúng. Làm thế nào tôi có thể sửa lỗi này?UILabel cắt phông chữ tùy chỉnh. Làm cách nào để tự động điều chỉnh chiều cao UILabel dựa trên phông chữ tùy chỉnh được chọn?
Trả lời
Như đã nêu, tôi gặp phải sự cố rất khó chịu khi phông chữ tùy chỉnh trong UILabel bị cắt do nội dung nào đó. Sau đó tôi phát hiện ra nó là do ascenders and descenders (đặc điểm phông chữ).
Sau khi tìm kiếm nhiều, tôi đã tìm thấy solution yêu cầu bạn tải xuống chương trình, điều chỉnh độ nghiêng và giảm dần của phông chữ bằng cách sử dụng thiết bị đầu cuối và sau đó thử nghiệm trên ứng dụng của bạn cho đến khi hoàn hảo.
Điều này sẽ ổn nếu tôi không phải thực hiện việc này cho hơn 20 phông chữ. Vì vậy, tôi quyết định tìm hiểu và xem liệu tôi có thể truy cập vào các giá trị ascender và descender của phông chữ hay không. Hóa ra UIFont có những thuộc tính chính xác đó!
Với thông tin đó, tôi có thể phân lớp UILabel và điều chỉnh khung động bằng cách thêm giá trị ascender và descender (sử dụng giá trị tuyệt đối vì nó âm) với chiều cao của nó.
Dưới đây là một đoạn mã thực hiện dưới đây, dòng cuối cùng là dòng tiền:
UIFont *font = [UIFont fontWithName:nameOfFontUsed size:44.0];
NSDictionary *attrsDict = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName];
NSMutableAttributedString *theString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@", enteredString] attributes:attrsDict];
//Add other attributes you desire
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping;
paragraphStyle.lineHeightMultiple = 5.0;
[theString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [theString length])];
[self setAttributedText:theString];
[self sizeToFit];
[self setFrame:CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, self.frame.size.height+font.ascender+ABS(font.descender))];
Cố gắng ghi đè bất động sản intrinsicContentSize trong UILabel.
Tôi không nghĩ đây là phương pháp hay nhất, nhưng dễ giải quyết vấn đề trong một số trường hợp.
Ví dụ cho Swift 3
class ExpandedLabel: UILabel {
override var intrinsicContentSize: CGSize {
let size = super.intrinsicContentSize
// you can change 'addedHeight' into any value you want.
let addedHeight = font.pointSize * 0.3
return CGSize(width: size.width, height: size.height + addedHeight)
}
}
- 1. Làm thế nào để có được kích thước phông chữ tự động điều chỉnh UILabel (UITextView)?
- 2. Phông chữ tùy chỉnh trong thẻ tùy chọn chọn
- 3. Cách điều chỉnh kích thước phông chữ để phù hợp với chiều cao và chiều rộng của UILabel
- 4. Phông chữ tùy chỉnh trong Java
- 5. Làm cách nào để tùy chỉnh phông chữ trong CKEditor?
- 6. Thêm phông chữ tùy chỉnh vào Qt
- 7. Phông chữ tùy chỉnh CSS tuyệt vời
- 8. WPF - Thêm Phông chữ Tùy chỉnh
- 9. Phông chữ tùy chỉnh trong Android
- 10. Điều chỉnh kích thước phông chữ tùy thuộc vào phông chữ nào được sử dụng từ ngăn xếp phông chữ
- 11. @ phông chữ cho phông chữ tùy chỉnh, phông chữ không trơn tru trong Chrome
- 12. Android phông chữ tùy chỉnh từ xaViews
- 13. Phông chữ tùy chỉnh Swift Xcode 7
- 14. Phông chữ tùy chỉnh cho webview android
- 15. Phông chữ tùy chỉnh trong Xcode 6
- 16. Phông chữ tùy chỉnh trong ckeditor
- 17. Phông chữ tùy chỉnh trong Pixi.js
- 18. Sử dụng phông chữ tùy chỉnh trên Nhãn trên Winforms
- 19. phông chữ ttf xcode tùy chỉnh không hoạt động
- 20. Phông chữ tùy chỉnh không hoạt động trong lollipop?
- 21. Performance vấn đề trên tùy chỉnh phông chữ TextView
- 22. Animating TextView với phông chữ tùy chỉnh làm công việc nặng nhọc để phông chữ Cache
- 23. Phông chữ tùy chỉnh không hoạt động trong iOS 8
- 24. Làm cách nào để có kích thước phông chữ được điều chỉnh tự động trong iOS 7.0 trở lên?
- 25. Cách đặt phông chữ tùy chỉnh theo kiểu in đậm
- 26. Phông chữ tùy chỉnh trong ứng dụng TVOS TVML
- 27. Có thể sử dụng phông chữ tùy chỉnh - sử dụng phông chữ không?
- 28. Sử dụng phông chữ tùy chỉnh (ttf) trong CSS
- 29. chọn tùy chọn phông chữ
- 30. Qt- Thêm phông chữ tùy chỉnh từ tài nguyên
Tôi hiểu bạn subclassed các UILabel. Bạn đã ghi đè phương thức nào và đặt mã ở trên? – mixtly87
Đã lưu ngày của tôi! Cảm ơn. –