现在看来,学习现有开源项目绝对是进步最快的方法
教程,开源项目,一个都少不了
21个高质量的Swift开源iOS App
http://www.cocoachina.com/swift/20161014/17758.html
我下载了几个,
No.5 Flappy Swift
https://github.com/fullstackio/FlappySwift
flappy bird,swift,spriteKit写的,我现在已经能看懂,必看
No.16 Swift Radio
https://github.com/swiftcodex/Swift-Radio-Pro
界面很好看
这里面实现tableview的datasource协议等使用的是extension用法,挺好的
我仔细研究了一下它的界面,并仿制它编写了UITest1项目
它里面的一个about界面中使用了SpringButton,
我也体验了refreshController,
发现,背景图片的上方一条要和refreshController的背景颜色相同,不然会有不好看的一个小bug
No20 Youtube
https://github.com/aslanyanhaik/youtube-iOS
实现了与youtube相似的界面
其实现原理挺神奇
为了学习,我建立了UITest2项目
这个项目很值得学习
首先是它自定义navagationController
然后自定义了navagationController的navigationBar
方法是addSubview,然后再代码添加约束
它的代码添加约束有点让初学者误解,我在我的UITest2中已经改回来了
然后学习了它的settingsView的显示方式,比较有趣
关键代码是
self.tableViewBottomConstraint.constant = -self.tableView.bounds.height
还有就是settingsView.layoutIfNeeded()在淡入淡出的动画中起到了很重要的作用
然后开始学习它的主界面,可以横着切换界面的,挺好
关键是UICollectionViewDelegate继承自UIScrollViewDelegate
通过scrollViewDidScroll函数获取
它的大小出现了一些bug,我尝试了几次就找到了解决办法,只要在storyboard中把cell的大小调回来,然后在代码中正常设置大小,为屏幕大小,即可
navagationBar的translucent变量有用,如果选中了,那view就被它压住一部分
navagationBar去黑边:setBackgroundImage,shadowImage
tabBarView是由collectionView构成的,注意flowlayout中的minispacing要改为0,imageView要改为aspect fit
还有就是它擅用NSNotification,很对
它的playerView的手势用的是panGestureRecognizer