2014-01-24 27 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

相關問題