项目:彩票
- 核心动画,常用核心动画绘制。
- 模拟器和真机的尺寸,跟启动画面有关。
- launchScreen 底层实现是:截屏,显示的是一张图片,在文件夹中可以看到。
- UITabBarController的view不是懒加载,而是在创建底座控制器的时候加载,与UIViewController不一样。
- 封装控件最好用代理去实现,这样可以实现多种代理方法。
- 导航条专门有存放背景的view,高度为64,控制器的view往下移。
- 使用自定义控件的时候,尽量模仿苹果系统本身的实现,例如UITabBar。
- @property,如果在分类里面只会生成get、set方法的声明,并不会生成成员属性。
- 使用思维导图 MindNode 进行项目流程管理
- 判断当前用户有没有最新版本;如果是YES,就展示新特性界面;如果是NO,就展示核心界面。
- 类方法: + (void)initialize 只调用一次。 + (void)load 也只调用一次,在程序启动main函数之前调用。
- [UINavigationController appearance] 获取当前应用下所有的控制器。统一风格,没有个性化,而且会设置系统的导航条(比如照片库),可能会造成一定的bug,不建议使用此方法。appearanceWhenContainedIn,获取当前类所有的控制条。
- UICollectionView
- 类似于九宫格,已经做好了循环利用,继承与UIScrollView。cell的尺寸自己设置,比tableView更加强大。初始化必须要有布局设置,可以设置为流水布局:UICollectionView变窄了,cell会自动往下流。与之相对的是 瀑布流:cell 的高度宽度不一样。
- 层次结构:控制器的 view + 上面还有一个 collectionView
- 布局:可以设置滚动的方向,默认是垂直,也可以设置为水平。
- 删除当前控件,提供一个思路:removeFromSuperView:
- 程序运行时抛出异常,定义预览如下代码所示,当方法运行未达到要求时,程序崩溃抛出异常。
NSException *excp = [NSException exceptionWithName:@"items的总数不符合" reason:@"传入的数组总数必须是3的倍数" userInfo:nil];
[excp raise];
- UIViewController 比 UIView有更多默认定义的属性。
- 自动布局有点延迟,可以通过loadView: 或者画上去 draeRect:
- loadView:,此时xib上所有的按钮都加载完毕,并已经连线。
- 拉伸登录按钮的背景图片,可以采用strech属性。
- 使用Mindnode思维导图,管理项目(非原创,老师给的)
F1E2A1AB-2F2D-4659-9A2B-E9DA9A1021C7.png