整理:@lp_马建成
1.Auto Layout VFL masonry @Dev_GJ
随着Apple手机屏幕、像素的变化,自iOS6之后苹果发布了Auto Layout自动布局工具,其实也就是从之前我们通过绝对布局到相对布局(安卓从诞生那天貌似就用的是相对布局,毕竟要适配那么多屏幕/html+css布局中也很早就提出相对布局)。
Auto Layout布局一种是通过xib可视化调试(小项目/外包项目/个人Demo/以及变化不大的页面建议用),若是产品话的项目尽量避免xib的使用,xib对SVN/GIT等版本管理工具适配的并不是那么好,若团队项目用多了xib,后面一堆麻烦事等着你。
Auto Layout学习教程推荐:segmentfault.com/a/119000000…
AutoLayout使用
1.1 xib或者Storyboard中,使用Xcode提供图形界面直接添加约束即可
1.2 在代码中使用苹果提供的API添加约束
1.3 使用VFL语言,全称Visual Format Language
1.4 使用三方框架添加约束(Masonry)【推荐】github.com/SnapKit/Mas…
2.imooc编程/测评题缓存实现 @迎_风_起_舞
经慕课网用户大力反馈,需要编程测评题缓存,我们在下个版本中即将上线这块功能。
由于编程/测评题经常变动,而且样式繁多,我们在2.0后全部切换到webview得方式,虽然webview帮客户端减轻了很多工作,但webview对内存的消耗,页面的体验都是比较差的。这次小得修改就是把编程测评题和视频一起提供下载,一个编程/测评题包含一个html和一大堆js+css,基于遍历html,爬出js+css方式比较麻烦,故我们的方式步骤如下:
a.由服务端把单个编程/测评题打包成zip
b.客户端通过断点续传下载类下载zip
c.用户需要看本节课程时,
c0.用第三方库SSZipArchive解压缩
c1.清除SSZipArchive
c3.本地调用【baseURL需要给你的html和css+js的相对目录】
[_webView loadHTMLString:[NSString stringWithContentsOfFile:[localFilePath stringByAppendingPathComponent:@"index.html"] encoding:NSUTF8StringEncoding error:nil] baseURL:baseURL];
3.课程跳转【App内+App外部】
a.字符串判断,跳到对应的页面[应用内]
b.应用间跳转-schema方式
b1.targets-Info->URL Types 设置
b2.在AppDelegate类中用这个方法完成App跳转后处理工作
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotationNS_AVAILABLE_IOS(4_2);// no equiv. notification. return NO if the application can't open for some reason
4.夜间模式:键盘问题 @_______白丁
慕课网iPad增加了夜间模式功能,除了UI层夜间切换外,对系统键盘等也需要切换,在原生UI上,调用键盘都可以通过输入框的.keyboardAppearance属性修改
UITextView*textView = [[UITextViewalloc]initWithFrame:self.view.bounds];
textView.keyboardAppearance=UIKeyboardAppearanceDark;
但对于webview的夜间模式我们需要用一个runtime的方法,具体看这个链接
stackoverflow.com/questions/1…
---------------------------------
5.一些开发工具推荐 @一部美剧
a.SSZipArchive[压缩解压缩第三方库]
b.测试工具-开发者选项[iOS设置-开发者选项]
真机需要连接到电脑才可能出现这个选项,利用开发者中得一些工具,可以帮助我们测试很多复杂环境的bug,目前只是看了一下网络这一块,其他后续安排再研究。
c. Charles
http抓包工具,我们可以抓一些其他APP的接口,推算一些功能的实现,一定减少我们重新造轮子的成本,其次我们可以基于其他APP做一些比较有趣的事情。Charles具体使用,请参照原软件。
d.xcode 闪退日志Crashes
注意:d1.需要在iTunes connect中添加以下权限
d2.xcode->Organizer打开
e.SimPholderwww.simpholders.com
Apple的沙盒目录地址在iOS8之后又变动了一次,无论以前还是现在都是很难管理,SimPholder很好的解决了这个问题。
f.JSON XML Parser 【json xml 格式化工具】
g.Reveal【View Debug工具,也可以在越狱机器上查看其他APP的View层次,推荐书:iOS逆向工程】
h.Core Animator
UI设计或者工程师可以通过简单的设置,生成比较漂亮的动画效果。
排版:MarkDown语法不熟,排版有点乱,下次修正。
注:本文来自imooc iOS团队,有什么错误的地方请及时联系我@lp_马建成,以免误人子弟,感谢!