1:DTCoreText支持三种安装方式
1、使用cocoapods
2、作为一个子项目(sub-project)
3、作为一个Framework
记录一下我使用第二种方法作为子项目安装的步骤。
1、首先找到你需要引入DTCoreText的项目。
2、在项目目录下,执行下面git命令下载代码。
git clone –recursive https://github.com/Cocoanetics/DTCoreText.git Externals/DTCoreText
3、找到你的项目,创建一个Externals的group
然后把DTCoreText.xcodeproj直接拖到刚刚创建的Externals中。
4、在Build Phases中添加如下framework
libDTCoreText.a (target from the DTCoreText sub-project)
libxml2.dylib
ImageIO.framework
QuartzCore.framework
CoreText.framework
MobileCoreServices.framework
5、在你项目的Build Setting中找到User Header Search Paths.添加DTCoreText的目录。
(注意使用Recursive递归)
要注意匹配你自己的目录,官方让填的Externals/DTCoreText/Core不一定就是你的目录
6、Build Setting 中找到Other Linker Flags加入-ObjC
2:根据文本内容计算label的宽高
- (float)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath{
NSString *str = [_dataArray objectAtIndex:indexPath.row];
UIFont *tfont = [UIFont systemFontOfSize:14.0];
NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:tfont,NSFontAttributeName,nil];
ios 7
CGSize sizeText = [str boundingRectWithSize:CGSizeMake(320, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
/ios 6
CGSize sizeText1 = [str sizeWithFont:[UIFont systemFontOfSize:16.0f] constrainedToSize:CGSizeMake(320, 1000) lineBreakMode:NSLineBreakByCharWrapping];
return sizeText1.height+70;///这个70 完全是根据你的情况调整的
}
- (CGSize)getStringSizeWithFont:(UIFont*)font maxSize:(CGSize)largeSize
{
CGSize size = CGSizeZero;
if (iOS_7_Above) {
size = [self boundingRectWithSize:largeSize options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size;
}else{
size = [self sizeWithFont:font constrainedToSize:largeSize lineBreakMode:NSLineBreakByWordWrapping];
}
return size;
}
3:iOS simulator运行程序出现问题:
An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)
解决方案:
iOS Simulator—-> Reset Contents and Settings —-> Reset
4:iOS开发基础 载入ViewController的几种方式
.h .m
UIViewController *vc = [[UIViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];xib/nib
UIViewController *vc = [[UIViewController alloc] initWithNibName:@”NIBNAME” bundle:nil];
[self.navigationController pushViewController:vc animated:YES];sb
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@”MainStoryboard” bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@”IDENTIFIER”];
[self.navigationController pushViewController:vc animated:YES];
5: 创建UIWindow
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 2.设置UIWindow的背景颜色
self.window.backgroundColor = [UIColor redColor];
// 3.让UIWindow显示出来(让窗口成为主窗口 并且显示出来)
// 一个应用程序只能有一个主窗口
[self.window makeKeyAndVisible];
6:视图生命周期
A push B
2015-03-05 22:41:59.341 09-控制器生命周期[1235:101086] One - viewDidLoad
2015-03-05 22:41:59.343 09-控制器生命周期[1235:101086] One - viewWillAppear
2015-03-05 22:41:59.466 09-控制器生命周期[1235:101086] One - viewDidAppear
2015-03-05 22:42:12.843 09-控制器生命周期[1235:101086] Two - viewDidLoad
2015-03-05 22:42:12.844 09-控制器生命周期[1235:101086] One - viewWillDisappear
2015-03-05 22:42:12.844 09-控制器生命周期[1235:101086] Two - viewWillAppear
2015-03-05 22:42:13.359 09-控制器生命周期[1235:101086] One - viewDidDisappear
2015-03-05 22:42:13.360 09-控制器生命周期[1235:101086] Two - viewDidAppear
B pop A
2015-03-05 22:42:56.251 09-控制器生命周期[1235:101086] Two - viewWillDisappear
2015-03-05 22:42:56.251 09-控制器生命周期[1235:101086] One - viewWillAppear
2015-03-05 22:42:56.762 09-控制器生命周期[1235:101086] Two - viewDidDisappear
2015-03-05 22:42:56.762 09-控制器生命周期[1235:101086] One - viewDidAppear