2015-02-25 13 views
7

Vì vậy, phông chữ tùy chỉnh hiển thị đúng trong ứng dụng và trong IB khi tôi sử dụng UILabel với văn bản được đặt thành Plain, nhưng khi tôi đặt nó được gán, có vẻ tốt trong IB nhưng không có trong ứng dụng.UILabel hiển thị phông chữ tùy chỉnh sai khi sử dụng cài đặt văn bản được phân bổ nhưng hoạt động tốt khi được đặt trong mã

Tôi lập trình sử dụng phông chữ tùy chỉnh ở mọi nơi với chuỗi được phân bổ và nó hoạt động tốt.

Tôi đã cài đặt phông chữ trên mac của mình thông qua sách phông chữ và tôi đã cài đặt phông chữ vào ứng dụng của mình bằng cách đặt thuộc tính thích hợp trong info.plist và trong phần tài nguyên bản sao của giai đoạn xây dựng. Tôi cũng đang sử dụng Xcode 6.1.1

tôi đã bao gồm một sample project minh họa vấn đề của tôi

Đây là HTML cho nhãn trong XIB được thiết lập trong IB. Như bạn có thể thấy nó được đặt thành phông chữ tùy chỉnh.

<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" usesAttributedText="YES" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" 
 
translatesAutoresizingMaskIntoConstraints="NO" id="kpn-Ch-m1y"> 
 
    <rect key="frame" x="20" y="84" width="560" height="100" /> 
 
    <constraints> 
 
    <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="100" id="tyA-gf-Vjj" /> 
 
    </constraints> 
 
    <attributedString key="attributedText"> 
 
    <fragment content="the attack of the chicken lover"> 
 
     <attributes> 
 
     <font key="NSFont" size="11" name="HelveticaNeueLTStd-Cn" /> 
 
     <font key="NSOriginalFont" size="11" name="HelveticaNeueLTStd-Cn" /> 
 
     <paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" /> 
 
     </attributes> 
 
    </fragment> 
 
    </attributedString> 
 
    <nil key="highlightedColor" /> 
 
    <variation key="heightClass=compact" ambiguous="YES"> 
 
    <rect key="frame" x="23" y="84" width="554" height="211" /> 
 
    </variation> 
 
    <variation key="heightClass=compact-widthClass=compact" ambiguous="YES"> 
 
    <rect key="frame" x="23" y="84" width="354" height="211" /> 
 
    </variation> 
 
</label>

Đây là những gì sẽ xảy ra khi bạn in các nội dung của nhãn phản bội mà đã có nó attributedString đặt trong IB. Như bạn có thể thấy một cái gì đó đã xảy ra giữa XIB đã có nó như là một font helvetica cô đặc đến những gì nó có trong ứng dụng, một font chữ thường xuyên của helvetica.

2015-02-25 17:35:09.726 FontTest[25984:360263] Helvetica Nueue Condensed{ 
 
    NSColor = "UIDeviceWhiteColorSpace 0 1"; 
 
    NSFont = "<UICTFont: 0x792604b0> font-family: \".HelveticaNeueInterface-Regular\"; font-weight: normal; font-style: normal; font-size: 14.00pt"; 
 
    NSParagraphStyle = "Alignment 0, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 4, Tabs (\n 28L,\n 56L,\n 84L,\n 112L,\n 140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n 308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0"; 
 
} 
 
(lldb)

enter image description here

+1

Tôi có cùng một vấn đề: đặt nhãn để sử dụng 'văn bản được phân bổ' trên IB, chạy ứng dụng và nhãn hiển thị phông chữ sai (sans-serif ... có lẽ phông chữ hệ thống?). Đặt lại thành 'văn bản thuần túy' và phông chữ được chỉ định được hiển thị. Đăng nhập tên họ của phông chữ nhãn cho phông chữ được chỉ định trong cả hai trường hợp! –

+0

Vâng, nó khá đáng ghét. Tôi sẽ mạnh mẽ chống lại bất kỳ việc sử dụng phông chữ tùy chỉnh nào trong các dự án trong tương lai. Tôi cũng nhận được lỗi trong tính toán chiều cao với phông chữ tùy chỉnh mà tôi không nhận được với các phông chữ iOS hộp, nhưng đó là một vấn đề khác. – Biclops

Trả lời

-1

Phông chữ mà bạn thiết lập trong mã

NSDictionary *attributes = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeueLTStd-Cn" size:17]}; 

và IB khi bạn thay đổi nó để HelveticaNeueLTStd-Cn 17,0

giống nhau. Xem ảnh chụp màn hình.

enter image description here

Tôi đoán bạn chưa cài đặt phông chữ như thể hiện trong hình ảnh đầu tiên.

+0

Lưu ý cách đầu tiên và số thứ hai giống nhau. Họ không nên, đầu tiên là hệ thống font 17 và thứ hai được thiết lập để HelveticaNeueLTStd-Cn 17.0. Phần thứ ba được thiết lập để lập trình cho HelveticaNeueLTStd-Cn 17.0 trong khi phần thứ hai được thiết lập trong IB. Cái thứ hai và thứ ba trông giống nhau nhưng không phải. – Biclops

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