原文链接:点击打开链接
- 1、UILabel内容自动换行
- UIFont
*fontName = [UIFont systemFontOfSize:16.0f]; - //定义字体大小
- CGSize
sizeName = [orderFood.food_name - sizeWithFont:fontName
constrainedToSize:CGSizeMake(130.0f,MAXFLOAT) - // 这里最好用MAXFLOAT ,是系统的一定可以确保你换行成功
-
signLabel.text = [NSString stringWithFormat:@"%@",sigStr] ; CGSize size = [signLabel.text sizeWithFont:signLabel.font constrainedToSize:CGSizeMake(signLabel.frame.size.width, signLabel.text.length)lineBreakMode:NSLineBreakByWordWrappin g]; signLabel.frame = CGRectMake(signLabel.frame.origin.x, signLabel.frame.origin.y,size.width, size.height); 之前我的代码中的高度,直接用字符串的长度来设置,结果如果字符串比较长的话可以换行成功,如果短一些都不能换行成功,原因不明
-
lineBreakMode:UILineBreakModeWordWrap]; - //orderFood.food_name为字符串,即UILabel要显示的内容;fontName
字体大小;CGSizeMake(130.0f,MAXFLOAT) UILabel显示内容的宽度130.0f,MAXFLOAT为显示内容所允许的最大高度,最终得到的sizeName,其width,heightwei值为显示内容所需显示的实际宽度与高度;UILineBreakModeWordWrap以单词为单位换行,以单词为单位截断。 - //定义显示内容的UILabel,宽度为130,高度为经过sizeName.height。
- UILabel
*lbFoodName = [[UILabel alloc]initWithFrame: - CGRectMake(94,
2, 130, sizeName.height)]; - [lbFoodName
setText:orderFood.food_name]; - [lbFoodName
setBackgroundColor:[UIColor clearColor]]; - [lbFoodName
setFont:[UIFont systemFontOfSize:16.0f]]; - [lbFoodName
setNumberOfLines:0]; - //注意这里UILabel的numberoflines(即最大行数限制)设置成0,即不做行数限制。
- [lbFoodName
setLineBreakMode: - UILineBreakModeWordWrap];
- //将UILabel加入到tvCell
的View中显示。 - [tvCell.contentView
addSubview:lbFoodName]; -
- 2、UILineBreakModeWordWrap详细解释如下:
- typedef
enum { -
UILineBreakModeWordWrap = 0, -
UILineBreakModeCharacter Wrap, -
UILineBreakModeClip, -
UILineBreakModeHeadTrunc ation, -
UILineBreakModeTailTrunc ation, -
UILineBreakModeMiddleTru ncation, - }
UILineBreakMode; -
-
-
UILineBreakModeWordWrap = 0, -
以单词为单位换行,以单词为单位截断。 -
UILineBreakModeCharacter Wrap, -
以字符为单位换行,以字符为单位截断。 -
UILineBreakModeClip, -
以单词为单位换行。以字符为单位截断。 -
UILineBreakModeHeadTrunc ation, -
以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。 -
UILineBreakModeTailTrunc ation, -
以单词为单位换行。无论是单行还是多行,都是末尾有省略号。 -
UILineBreakModeMiddleTru ncation, -
以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。 -
- 3、UITextView根据内容自动调整高度与此类似,不多做说明。