2012-11-22 31 views
5

Tôi đã tạo UILabel và đặt lineBreakMode thành NSLineBreakByWordWrapping, nhưng đôi khi một từ được chia thành hai dòng.Tại sao NSLineBreakByWordWrapping đôi khi không hoạt động

mã của tôi là như belows

_sentenceLabel.textAlignment = UITextAlignmentCenter; 

    if (_sentenceLabel.bounds.size.width > self.bounds.size.width - 100) { 
     CGSize size = [_info.sentence sizeWithFont:sentenceFont 
           constrainedToSize:CGSizeMake(self.bounds.size.width - 100, 1000)]; 
     _sentenceLabel.frame = CGRectMake(0, 0, size.width, size.height); 

     _sentenceLabel.numberOfLines = 0; 
     _sentenceLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    } 

Khi tên font là @ "Gill Sans", các ngắt dòng là không đúng. (Từ "kết quả" được chia thành hai dòng) enter image description here

Khi tôi đổi sang phông chữ khác, nó hoạt động trở lại. Nó thật quái đảng.

Cảm ơn bạn đã được trợ giúp.

Trả lời

1

Điều này cũng xảy ra với các ký tự tiếng Hàn, phông chữ AppleSDGothicNeo-Bold và các phông chữ khác. Trong một nhãn duy nhất với các từ Latin và Hàn Quốc, cho những từ tiếng Latin từ gói đang làm việc nhưng nó không phải dành cho những người Hàn Quốc.

1

Các tài liệu đọc:

NSLineBreakByWordWrapping 

Wrapping xảy ra tại ranh giới từ, trừ từ bản thân không phù hợp trên một dòng đơn.

+1

Cách xử lý trường hợp này: chính từ đó không vừa trên một dòng. – Ecroo

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