Objective C
在Objective C專案內,使用Swift Class的步驟
- 先從Xcode的
File -> New -> File新增檔案,在最後會詢問要不要自動新增ProjectName-Bridging-Header.h檔案,請選擇Yes 在剛剛新增的Swift檔案內,宣告的Class前面新增
@objc,如下@objc class SwiftViewController: UIViewController {在Xcode的
Project和和Target的的Build Settings內,把參數設定成下面的值Always Embed Swift Standard Libraries = YESDefines Module = YESObjective-C Generated Interface Header Name = -Swift.hInstall Objective-C Compatibility = YES- 在想要使用Swift Class的objective-C檔案內
#import "projectName-Swift.h" - 在Xcode的 Product 內選擇
Clean(Shift + Cmd +K) - 重新
Run(Cmd + R)
- 先從Xcode的
從OC內呼叫Swift的ViewController的方式
先獲得Storyboard,再抓到ViewContrller,最後present出來
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"viewContrllerIdentifierName"]; [self presentViewController:vc animated:YES completion:nil];
計算字串所需要的寬度和高度
使用
NSTextAlignmentToCTTextAlignmentCGRect rec = [model.msg boundingRectWithSize:CGSizeMake(260 / kWidthScale, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14.0]} context:nil];- model.msg:你要計算的字串
- CGSizeMake(width, CGFLOAT_MAN):通常給寬度,讓函式算高度
- options:算多行請用
NSStringDrawingUsesLineFragmentOrigin - attributes:
@{NSFontAttributeName : [UIFont systemFontOfSize:14.0]}字體的資訊 - context:通常為nil
改變標籤的字體大小
[nameLabel setFont:[UIFont fontWithName:@"Arial" size:15]]; ------------------ or this way ------------------ UIFont * font = typeLabel.font; [nameLabel setFont:[UIFont fontWithName:font.fontName size:15]];