2013-07-23 25 views
5

Tôi muốn tính chiều cao của NSAttributedString Multiline. Nó làm việc tốt cho một dòng (có nghĩa là nó là trừ đi hàng đầu từ chiều cao). nhưng nếu văn bản có nhiều dòng thì nó giống như một dòng.Multiline NSAttributedString cho chiều cao sai?

NSMutableParagraphStyle *titleParagraphStyle = [[NSMutableParagraphStyle alloc] init]; 
titleParagraphStyle.lineHeightMultiple = 0.9f; 
titleParagraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 

CGSize constrainedSize = CGSizeMake(TOUNameWidth, MAXFLOAT); 

NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys: 
             TOUNameFont, NSFontAttributeName, 
             titleParagraphStyle, NSParagraphStyleAttributeName, 
             nil]; 

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString: name attributes:attributesDictionary]; 


CGRect rect = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesFontLeading context:nil]; 

NSLog(@"rect is %f",rect.size.height); 

Trả lời

4

Theo tài liệu của boundingRectWithSize:options:context: bạn cần phải thêm NSStringDrawingUsesLineFragmentOrigin

Nếu NSStringDrawingUsesLineFragmentOrigin không được xác định, chiều cao hình chữ nhật sẽ bị bỏ qua và các hoạt động được coi là single-line vẽ. (Do lỗi, chiều rộng cũng bị bỏ qua trên iOS 6.)

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