首先我們要得到字型的誆度
NSDictionary *attributes = [NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:20] forKey:NSFontAttributeName];
再來要得到新字串以及原本字串的大小
在做計算與調整
整體程式碼如下不懂可看註解


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 NSDictionary *attributes = [NSDictionary dictionaryWithObject:[UIFont systemFontOfSize:20] forKey:NSFontAttributeName];//獲得字型大小二十的寬度
//原來按鈕上的文字
CGSize textSize = [fkub0.titleLabel.text boundingRectWithSize:self.view.bounds.size // 文字尺寸
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading // 文字繪製的附加選項
attributes:attributes // 文字的属性
context:nil].size;

//新按鈕上的文字字
CGSize textSizeAA = [@"AAAAAAAAAAAAA" boundingRectWithSize:self.view.bounds.size
options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading
attributes:attributes
context:nil].size;
//新按鈕的尺寸
CGRect rect = fkub0.frame;
rect.size.width = rect.size.width-textSize.width+textSizeAA.width;//新按鈕尺寸等於 原來按鈕減掉原本文字加上新的文字寬度
rect.size.height = textSize.height;//高度不變
rect.origin.x = fkub0.frame.origin.x-(textSizeAA.width-textSize.width);//X的原點等於原本的原點減調新舊文字的差(建議使用絕對值)
rect.origin.y = fkub0.frame.origin.y;//Y原點不變
fkub0.frame = rect;

arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()