2015年03月6日 iOS学习笔记

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的几种方式

  1. .h .m
    UIViewController *vc = [[UIViewController alloc] init];
    [self.navigationController pushViewController:vc animated:YES];

  2. xib/nib
    UIViewController *vc = [[UIViewController alloc] initWithNibName:@”NIBNAME” bundle:nil];
    [self.navigationController pushViewController:vc animated:YES];

  3. 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值