前面實用的根據文字計算尺寸和拉伸的方法是很常用的,應該抽取為工具方法,搞乙個工具類。
oc裡面一般是用分類(category)來實現這個功能。
分類一般是給系統自帶的類擴充一些方法。
拉伸的方法應該封裝在uiimage類內。
#import "uiimage+resize.h"
@implementation uiimage (resize)
+ (uiimage *)resizableimage:(nsstring *)imagename
@end
在需要使用uiimage的這個方法的時候記得要新增分類的標頭檔案。
對於計算字串所占用的尺寸,用物件方法更合適(針對字串進行計算)。注意用到cg***要加入uikit框架:
#import "uikit/uikit.h"
#import "nsstring+extension.h"
@implementation nsstring (extension)
- (cgsize)sizewithfont:(uifont *)font maxsize:(cgsize)maxsize;
return [self boundingrectwithsize:maxsize options:nsstringdrawinguseslinefragmentorigin attributes:attrs context:nil].size;
}@end
總結:注意類方法和物件方法的選擇,多使用分類。
二十二 synchronized同步方法
一 synchronized鎖 1 synchronized取得的鎖都是物件鎖,而不是把一段 或方法加鎖。synchronized是給該方法的例項物件加鎖。如果多個執行緒訪問的是同乙個物件 的synchronized方法,就可以同步。2 物件中的非synchronized型別的方法是不需要等待鎖的。...
(二十二) 常用類 包裝類
常用的靜態方法par xx int i2 integer.parseint 12345 system.out println i2 int i3 integer.parseint 78 16 把16進製制轉成10進製 system.out println i3 to string 把int轉成指定進...
小話設計模式(二十二)模板方法模式
模板方法適用於以下情況 1 一次性實現乙個演算法的固定部分,並將可變行為留給子類實現。2 各個子類中公共的行為應該被提取出來並集中到乙個公共的父類中用以避免 重複。3 控制子類擴充套件,父類提供了預設的方法,子類可以在必要時進行擴充套件。模板方法模式一種特別常用的模式,你可能在程式設計過程中無意中就...