1. 程式人生 > >iOS三種讓UILabel中的text居上的方式

iOS三種讓UILabel中的text居上的方式

  
第一種自適應,但是該方法已廢棄,仍可用

CGRect frame = yourLabel.frame;

    CGSize size = [yourLabel.text sizeWithFont:yourLabel.font constrainedToSize:CGSizeMake(frame.size.width, 5000)];
    frame.size = CGSizeMake(frame.size.width, size.height);

    yourLabel.frame = frame;

第二種自適應

    CGRect rect = [titleLabel.text boundingRectWithSize:titleLabel.frame.size options:(NSStringDrawingUsesLineFragmentOrigin) attributes:[NSDictionary dictionaryWithObjectsAndKeys:titleLabel.font,NSFontAttributeName, nil] context:nil];
    titleLabel.frame = CGRectMake(X,Y, W, rect.size.height);

第二種:

此方法更加簡單粗暴,但是很有效。其方法是在文字後面加多一些\n。 需要注意的是,\n後還得加至少一個空格,否則多餘的\n會被UILabel忽略。從這一點上看,UILabel似乎又過於“聰明”了。 該方法的程式碼如下:

for(int i=0; i<newLinesToPad; i++)
self.text=[self.text stringByAppendingString:@"\n "];

如有更好的方法:請加QQ188816190,麻煩告知。