tôi tạo ra một UITextView, thêm văn bản vào nó, và đặt nó trong giao diện (với một container)boundingRectWithSize không tôn trọng từ gói
UITextView *lyricView = [[UITextView alloc] initWithFrame:screen];
lyricView.text = [NSString stringWithFormat:@"\n\n%@\n\n\n\n\n\n", lyrics];
[container addSubview:lyricView];
[self.view addSubview:container];
sau đó tôi nhận được kích thước của nó để sử dụng với một nút và thêm nó vào UITextView
CGRect size = [lyrics boundingRectWithSize:CGSizeMake(lyricView.frame.size.width, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[lyricView font]}
context:nil];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[doneButton setFrame:CGRectMake(56, size.size.height + 55, 208, 44)];
[doneButton setTitle:@"Done" forState:UIControlStateNormal];
[lyricView addSubview:doneButton];
này hoạt động trong hầu hết trường hợp . Điều này sẽ tôn trọng \ n ngắt dòng (như tôi đã thêm vào chuỗi của tôiWithFormat) nhưng nó sẽ không tôn trọng từ kết thúc tự động được thêm vào bởi khung nhìn văn bản. Vì vậy, nếu lyrics
có một dòng không phù hợp trên màn hình, UITextView sẽ quấn nó (như nó phải), nhưng size
bây giờ là hơi ngắn hơn nó nên được bởi vì nó không tôn trọng bọc xem văn bản.
bạn đã thử thay thế 'NSStringDrawingUsesLineFragmentOrigin 'bởi' NSStringDrawingUsesFontLeading'? Mà ** Sử dụng phông chữ hàng đầu để tính chiều cao dòng ** – johnMa
@johnMa Khi tôi sử dụng 'NSStringDrawingUsesFontLeading', nó sẽ trả về 0. Khi tôi sử dụng' NSStringDrawingUsesLineFragmentOrigin' hoặc cả hai , Tôi có vấn đề được mô tả ở trên. – vqdave
Mọi cập nhật về điều này? Tôi đang gặp vấn đề tương tự và dường như không tìm được câu trả lời hay. –