2014-12-30 16 views
11

Tôi muốn gạch dưới ở dưới văn bản giống như bất kỳ cơ chế gạch chân bình thường nào khác. Tuy nhiên, với NSAttributed chuỗi nó để lại lỗ với "g" và "y của"NSUnderlineStyleAttributeName Gạch chân cách dòng

dụ: enter image description here

Làm thế nào nó nên nhìn: enter image description here

Làm thế nào tôi có thể làm tăng khoảng cách giữa các đường gạch chân và nhãn?

+0

Theo như tôi biết bạn không thể, nhưng thậm chí sau đó: tại sao muốn có phiên bản thứ hai? Nó dễ đọc hơn nhiều. Đặc biệt là ở kích thước phông chữ nhỏ. – DarkDust

+0

@DarkDust tại sao tôi lại muốn nó? Bởi vì đó là hành vi gạch chân mong đợi. Mở tài liệu Microsoft Word hoặc Google và đó là những gì bạn nhận được! – MobileMon

Trả lời

9

Không có cách nào để kiểm soát hành vi đó với NSAttributedString hoặc CoreText (ngoài việc vẽ chính gạch dưới). NSAttributedString không có tùy chọn nào cho (và CoreText hasn't got one, either).

Trên hệ thống Apple, phiên bản đầu tiên (với khoảng cách) là hành vi "mong đợi" vì đó là một trong những Apple cung cấp và được sử dụng trên toàn hệ thống (và các ứng dụng như Safari, TextEdit, v.v.).

Nếu bạn thực sự muốn nhấn mạnh mà không có khoảng cách, bạn cần vẽ chuỗi không gạch chân và vẽ đường thẳng (mà tôi cần làm in one of my projects and I can tell you it's hard; xem this file, tìm "gạch dưới").

0

Tôi đã thêm một dòng (UIView) có chiều cao 1 và chiều rộng như nhãn, được căn chỉnh đến cuối UILabel.

let label = UILabel() 
    label.text = "underlined text" 

    let spacing = 2 // will be added as negative bottom margin for more spacing between label and line 

    let line = UIView() 
    line.translatesAutoresizingMaskIntoConstraints = false 
    line.backgroundColor = label.textColor 
    label.addSubview(line) 
    label.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[line]|", metrics: nil, views: ["line":line])) 
    label.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:[line(1)]-(\(-spacing))-|", metrics: nil, views: ["line":line])) 
Các vấn đề liên quan