2014-01-24 80 views
0

我有一个编辑器,其中超过UIView我放了一个标签,并且标签上有labeltext。现在用户可以通过在UITextView上书写文本并点击按钮来创建尽可能多的UIView。现在,如果我需要编辑文本,在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得到所有的子视图的代码在子视图的标签。

+0

你的意思是你想有一个滚动视图?不要使用标签,使用文本视图并更改边框样式和编辑功能... – Wain

+0

是的,我想在文本增加时更改子视图的边框样式。 – Ron

回答

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; 
+0

完美,这工作真棒。 – Ron

1

如果你想改变与文本的子视图的大小,那么你可以尝试如下因素假定你的子视图是一个标签:

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

而且可以相应地尝试在其他子视图。

+0

如何获取maximumLabelSize – Ron

+0

您必须根据您的要求通过使用CGSize来设置maximumLabelSize,例如:CGSize maximumLabelSize = CGSizeMake(300,1000); –

+0

好吧,我现在得到expectedLabelSize如何把它放在subview.I已使subview autoreizeable subview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ;.我如何在子视图上放置expectedLabelSize。 – Ron

相关问题