根據服務器端返回的字符數組,展示字符串標簽,需要涉及字符串長度處理以及字符串換行,字符串不夠一行自動跳到第二行的邏輯
NSArray * titleArray = @[@"#藍色",@"#針織衫",@"#印花",@"#收腿褲",@"#豹紋",@"針織衫",@"周彥彤",@"JSON",@"123321",@"#藍色",@"#針織衫",@"#印花",@"#收腿褲",@"#豹紋",@"針織衫",@"周彥彤",@"#藍色",@"#針織衫",@"#印花",@"#收腿褲",@"#豹紋",@"針織衫",@"周彥彤",@"JSON",@"123321",@"#藍色",@"#針織衫",@"#印花",@"#收腿褲",@"#豹紋",@"針織衫",@"周彥彤"];
NSString * title = @"";
UIFont * font = [UIFont systemFontOfSize:17];
CGFloat wordWidth = 0;
CGFloat nameLabelX = 0;
CGFloat nameLabelY = 0;
CGFloat width = 0;
CGFloat section = 1;
int j = 0;
for (int i = 0; i < titleArray.count; i++) {
title = [titleArray objectAtIndex:i];
CGSize size = [title sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName, nil]];
//這里如果需要支持ios7之前的相關使用這個方法:
// CGSize size = [title sizeWithFont:font constrainedToSize:CGSizeMake(UTIL_View_Width(self)-30, 16) lineBreakMode:NSLineBreakByWordWrapping];
wordWidth = size.width + wordWidth;
nameLabelX = (i == 0 ? 10 : 10 * (i + 1)) + (i == 0 ? 0: wordWidth - size.width) ;
if (nameLabelX + size.width > [UIScreen mainScreen].bounds.size.width || isExchange == YES) {
width = size.width + width;
nameLabelX = (j == 0 ? 10 : 10 * (j + 1)) + (j == 0 ? 0: width - size.width);
j++;
nameLabelY = 100 + size.height *section + 10 * section;
if(nameLabelX + size.width > [UIScreen mainScreen].bounds.size.width){
width = 0;
width = size.width + width;
j= 0;
section = section + 1;
nameLabelX = (j == 0 ? 10 : 10 * (j + 1)) + (j == 0 ? 0: width - size.width);
j++;
nameLabelY = 100 + size.height *section + 10 * section;
}
isExchange = YES;
}else if (nameLabelX + size.width <= [UIScreen mainScreen].bounds.size.width && isExchange == NO){
nameLabelX = nameLabelX;
nameLabelY = 100;
}
UILabel * nameLabel = [[UILabel alloc]initWithFrame:CGRectMake(nameLabelX , nameLabelY, size.width, size.height)];
nameLabel.text = title;
nameLabel.backgroundColor = [UIColor redColor];
NSLog(@"%f",nameLabel.frame.origin.y);
[self.view addSubview:nameLabel];
}

浙公網安備 33010602011771號