2015-12-05 67 views
0

Iam動態生成UIButton,當我設置標題名稱時沒有空格顯示正確。 對於如:UIButton沒有顯示完整的標題?

NSString *myString=[[array valueForKey:@"optionName"] objectAtIndex:i]; 
NSLog(@"%@",myString); // myString=SampleTitle 
[button setTitle:myString forState:UIControlStateNormal]; 

,當我設置的名稱與空間的自動微調UIButton的標題。 對於如:

NSString *myString=[[array valueForKey:@"optionName"] objectAtIndex:i]; 
NSLog(@"%@",myString); // myString=SampleTitle Test 
[button setTitle:myString forState:UIControlStateNormal]; 

其顯示這樣

enter image description here

我怎麼能刪除該切邊部?我需要正確顯示所有字符。

和我的UIButton大小是根據標題

[button setTitle:myString forState:UIControlStateNormal]; 
     CGSize stringsize = [@"Prolonged inspiration" sizeWithFont:[UIFont systemFontOfSize:14]]; 
     //or whatever font you're using 
     [button setFrame:CGRectMake(x,y,stringsize.width+30,stringsize.height+20)]; 
+0

你需要使按鈕變大或使用較小的字體。 – rmaddy

+0

按鈕大小基於字符串長度 – Bangalore

+0

更新您的問題與您如何確定按鈕大小。 – rmaddy

回答

1

您的問題的最可能的原因是計算您在使用字體是從按鈕的字體可能不同計算文本的大小。將您的計算基於按鈕的字體以及按鈕的文本。

CGSize stringsize = [myString sizeWithFont:button.titleLabel.font]; 

作爲邊注,該方法sizeWithFont:在IOS 7.0被廢棄了。除非您還支持iOS 6,否則應該使用正確的替換替換該方法。

+0

好吧,讓我現在檢查它 – Bangalore

+0

它的工作......謝謝......但它顯示已棄用,所以還有其他方式嗎? – Bangalore

+0

有沒有什麼辦法可以根據這些動態按鈕來增加我的細胞高度? – Bangalore

0

試試這個爲iOS版本的iOS以上7.0

CGSize textSize = { widthValue, CGFLOAT_MAX };    
CGRect frame = [text boundingRectWithSize:textSize 
             options:NSStringDrawingUsesLineFragmentOrigin 
            attributes:@{ NSFontAttributeName:font } 
             context:nil]; 
     size = CGSizeMake(frame.size.width, frame.size.height+1);