Điều đầu tiên bạn cần làm là lấy kích thước của văn bản.
Rất may, các NSString UIKit Additions Reference cung cấp một phương pháp để thực hiện chính xác rằng:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
Điều đó sẽ cung cấp cho bạn một CGSize
mà sau đó bạn có thể sử dụng để thiết lập các khung UILabel
hoặc bất cứ điều gì bạn lớp con của UIView
rằng bạn sử dụng.
Vì vậy, giả sử textLayer
là một UILabel
- chứ không phải là một CALayer
- bạn sẽ kết thúc với một cái gì đó như thế này:
UIFont *myFont = [UIFont boldSystemFontOfSize:12.0f];
CGSize myFontSize = [myString sizeWithFont:myFont];
myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, myFontSize.width, myFontSize.height)];
myLabel.text = newTitle;
myLabel.font = myFont;
Nguồn
2012-01-30 18:21:21
đã tự hỏi về điều đó quá .. – Nils