如何增加mainview子视图的大小

时间:2014-01-24 13:14:51

标签: ios iphone objective-c uiview

我有一个编辑器,UIView我放了一个标签,标签上有labeltext。现在,用户可以通过在UIView上书写文本并点击按钮来创建尽可能多的UITextView。现在,如果我需要编辑文本,请在Tapgesture上获取文本并在UITextView上显示,用户可以编辑该文本。

现在,如果用户添加更多文本,那么我需要在单击提交按钮后增加文本将落在其上的子视图的宽度。所以我的问题是可以在主视图中增加子视图宽度。这是我从主视图中获取所有子视图的代码

for (UIView *subview in mainview.subviews)
        {
            if(subview.tag==sender.tag)
            {

                for(UIView *getsusublabel in subview.subviews)
                {

                    if([getsusublabel isKindOfClass:[UILabel class]])
                    {
                        UILabel *subsublabel = (UILabel *)getsusublabel;
                        subsublabel.text=imagelabeltext.text;
                    }

                }
            }
        }

此处subsublabel是子视图上的标签。

2 个答案:

答案 0 :(得分:2)

如果您想根据文字增加标签宽度,请尝试以下代码段:

//use this for custom font
CGFloat width =  [label.text sizeWithFont:[UIFont fontWithName:@"ChaparralPro-Bold" size:40 ]].width;

//use this for system font 
CGFloat width =  [label.text sizeWithFont:[UIFont systemFontOfSize:40 ]].width;

label.frame = CGRectMake(point.x, point.y, width,height);

//point.x, point.y -> origin for label;
//height -> your label height; 

答案 1 :(得分:1)

如果您想使用文本更改子视图的大小,那么您可以尝试以下假设您的子视图是标签:

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font 
                    constrainedToSize:maximumLabelSize 
                    lineBreakMode:yourLabel.lineBreakMode];

您可以相应地在其他子视图上尝试。