2012-01-09 30 views
0

我有一個默認樣式(白色)的UISegmentControl。我想在它上面添加文字。但是我想放在上面的文字是一個長文本。我要顯示段的2行文字。但我沒有提高段的寬度因爲屏幕寬度限制&沒有段。UIsegment控件上的多行文本

我曾嘗試以編程方式在細分控件上放置標籤,但我的標籤未顯示。儘管我們可以使用XIB爲段控制添加標籤。但由於&段控件的動態性,我必須以編程方式繪製段控件&也可以在上面放置文本。

指導將不勝感激。

回答

0

喜的朋友段控制器已經有標籤的子視圖,所以這段代碼是有幫助的,以實現多行文本分割控制

for (id segment in [segmentedControl subviews]) 
{ 
    for (id label in [segment subviews]) 
    { 
     if ([label isKindOfClass:[UILabel class]]) 
     { 
      //hear u add any of delegate function to increase the height and other label functionality in this 
      [label setTextAlignment:UITextAlignmentCenter]; 
      [label setFont:[UIFont boldSystemFontOfSize:12]]; 
//to adjust the label size manually with respect to text use below code 
    CGSize labelSize = CGSizeMake(100, 80); 
    CGSize theStringSize = [label.text sizeWithFont:label.font constrainedToSize:labelSize]; 
    CGRect frame = label.frame; 
    frame.size = theStringSize; 

     } 
    }   
} 

有好日子

+2

警告:此代碼可能打破因爲它使用UISegmentedControl的未公開屬性。 – chrisben 2013-03-27 14:10:10

+0

我不同意你的評論。大多數(50-60)%的應用程序在iOS中使用自定義UI的varios控件的未記錄屬性。 – 2013-05-17 09:14:40

+0

在我開發的應用程序中,我嘗試不做這樣的事情。如果您使用未記錄的屬性,則應用程序可能停止工作或在新版本的iOS上運行時出現奇怪的行爲:沒有記錄的內容也不受支持! – chrisben 2013-05-17 20:07:51