Ios 如何调整标签的大小和变换标签?
我的应用程序要求用户输入一些详细信息,然后使用标签通过另一个视图显示 由于用户可以输入可变长度的文本,而标签最初具有固定的长度和宽度,因此我使用了如下代码来调整标签大小:Ios 如何调整标签的大小和变换标签?,ios,view,label,transform,frame,Ios,View,Label,Transform,Frame,我的应用程序要求用户输入一些详细信息,然后使用标签通过另一个视图显示 由于用户可以输入可变长度的文本,而标签最初具有固定的长度和宽度,因此我使用了如下代码来调整标签大小: CGSize maximumLabelSize = CGSizeMake(296,9999); CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
CGSize maximumLabelSize = CGSizeMake(296,9999);
CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font
constrainedToSize:maximumLabelSize
lineBreakMode:yourLabel.lineBreakMode];
//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;
这些修改的问题是,我有许多标签一个接一个。因此,当我更改一个标签的长度时,以下所有标签也需要转换/移动到新位置
是否有任何方法可以动态更改所有标签的大小和位置,同时确保最终演示与固定长度标签一样好?int h=10;//初始高度如您所愿
int h=10; // Initial Height as you want
for(int k=0;k<[headItemArray count];k++) {
CGSize size_txt_overview1 = [[headItemArray objectAtIndex:k] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:18] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
UILabel *lbl_headitem = [[UILabel alloc]initWithFrame:CGRectMake(3,h, 690, size_txt_overview1.height)];// See the 'h' value
lbl_headitem.text = [headItemArray objectAtIndex:k];
[lbl_headitem setTextAlignment:UITextAlignmentLeft];
[lbl_headitem setBackgroundColor:[UIColor clearColor]];
[lbl_headitem setTag:k];
lbl_headitem.numberOfLines=0;
[lbl_headitem setTextColor:[UIColor redColor]];
[lbl_headitem setFont:[UIFont fontWithName:@"Helvetica" size:18]];
[scrollAttributes addSubview:lbl_headitem];
h = h + size_txt_overview1.height;// important
}
对于(int k=0;kYou需要动态管理所有标签的高度。例如,获取一个int变量“h”,将初始值设置为“yourlab.frame.size.origin.y”…在该值之后,h=h+expectedLabelSize.height…将该h值设置为下一个标签的y位置