2009-09-27 75 views
0

我試圖在我的Iphone應用程序上使用未記錄的setApplicationBadgeString方法來放置文本徽章。我遇到的問題是獲得正確的字符數。有時我可以適應角色,有時它會用點代替我的部分字符串。我在UILabel上也看到了同樣的行爲,如果文本不合適,它會被「...」截斷。我怎樣才能以編程方式找出在文本徽章的特定情況下文本將被截斷的時間,因爲我無法檢查其大小 - 它實際上似乎不是恆定的。謝謝!Iphone應用程序文本徽章長度

回答

1

由於字符的寬度不同,字符的數量會有所不同。 a W比* l **更長,所以一堆W將比一堆l更快地被截斷。

通過試驗和錯誤,你可以使用的NSString的方法- (CGSize)sizeWithFont:(UIFont *)字體找出允許在徽章的最大寬度。你將不得不弄清徽章使用的字體大小。你的代碼應該會看起來像這樣...

// I'm not sure what the badge font size is, you will have to test for this 
UIFont *font = [UIFont systemFontOfSize:12]; 

// Keep adding 1's to the badge string until you get the ...'s, then you will 
// know the maximum size of the badge string! 
NSString *badgeString = @"111";  
NSLog(@"width: %f", [badgeString sizeWithFont:font].width); 

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeString];