简述项目开发步骤
1.查看需求文档,看整个app有哪些功能,预估开发时间
2.查看原型图,了解App结构,确定一些模块 开始开发
3.需要展示数据的时候,查看接口文档就能获取数据,调通接口
4.打包测试
项目开发流程,需要多练.总结就是转化过程,把项目的思想以及思路理顺.
如何写总结:1.流程 2.知识点 3.为什么 思想 一个模块一个总结.
修改tableView的分割线(全屏分割线)
1.低于ios8.0的适配,需要进行一个判断,layoutMargins 属性是在ios8 以及以后的版本才有这个属性,所以需要做一个判断.
2.工作经常使用的方法是:(重写cell的setFrame)
分析tableView : cell 的高度由tableview 计算,是在一开始的时候就将cell的高度全部计算出来,保存起来. tableView的滚动范围也是由tableview计算.
验证:重写cell的setFrame方法,还原系统的做法,确定cell的高度已经全部计算出来,用到时直接取出来用.(断点验证)
注意:一定要把cell的高度还原(如果你对cell之间进行间距约束的话,调整cell高度方法),不要影响cell的原本高度.
在setFrame方法中,可以针对frame进行自定义的cell ,显示出我们想要的cell (宽度减2*10,x + 10);
3.业务逻辑:网络比较慢的时候 ,界面没有数据 ,添加提示,正在加载数据. SVP框架
HUD指示器业务逻辑:当网络请求数据时,提示用户正在加载,当网络请求成功后,将HUD dismiss掉.
当用户请求数据不成功时,用户点击返回按钮,释放view,需要将HUDdismiss掉,并且关闭网络请求.
当前工程中的文件引用 "" 非本工程中的文件引用<>
模拟网络延迟 dispatch 模拟请求不成功 延迟1000秒 或者 修改AFN中的Block调用.
界面跳转回去,view被释放掉,不需要再请求数据了,因为没有界面让刷新,所以要把子线程中的网络请求给关掉.
4.关注/登录界面
xib描述,创建名称与类名相同,因为加载关注界面alloc init 会调用init with nib方法,而这个方法会先判断有没有实现loadview方法....
xib 描述控制器必须进行的两个操作:①绑定类 ②拖线表示这个控制器的view我来描述
lable 换行option + enter (storyboard/xib中的操作)
如果本该有的图片线条没有显示,那么可能因为模拟器的原因.
登录按钮的业务逻辑:modal出登录注册界面
4.1.搭建界面
占位视图思想
复杂界面:化分结构,将在一块的控件添加到一个uiview容器中.(顶部,中间 ,底部)
用xib描述一个view,添加到另一个xib描述的view上,是可行的.
注意点:1.选中状态 和 正常状态 按钮 2.需求改变时,登录界面的可复用性,提高代码扩展性. 2.1登录界面创建一新的xib,单独描述,输入框背景可以看出这是两个textFile组合,但imageView不能添加子控件,所以,需要一个UIView包装. 2.2.修改登录按钮的圆角,在awakeFromNib中写,表示当前所有控件的属性都已经设置完毕,所以代码写这里面,
2.3美工提供的图片被拉伸的很严重,在awakeFromNib中拿到图片,设置可被拉伸的区域,赋值回去.
2.4 注册view 与登录view的业务逻辑相似,一个类可以管理两个view,,一个xib中可以描述两个view,注意在xib中的顺序.2.5业务逻辑:点击注册按钮,将登录界面切换到注册界面,那么给这个注册界面添加动画,让注册界面从左侧插入, 父控件的宽度为两倍屏幕宽度,这样保证点击事件可以响应.2.6 做约束动画 ,然后需要对位置进行判断,判断约束的值.2.7登录界面光标/占位文字的设置,创建类,统一管理,一次性设置在awake设置; 2.8 占位文字的设置是在文本编辑的状态下才需要设置,所以需要去监听文本框什么时候开始编辑.delegate target 通知 选择target 代理是一对一,且自己监听自己,不能用代理 2.9 业务逻辑:开始编辑,颜色改变 结束编辑,颜色恢复,一开始初始化一个文本颜色,之后可以方便恢复默认. 3.0 能不能快速设置占位文字颜色? 猜测,占位文字是不是lable类型.查看小面包,能查看出view的什么的类型(除此之外,还有一种运行时也可以查看某类的全部属性)
5.快速登录界面
5.1局部view描述界面 5.2 按钮内添加图片文字默认就是左右的,如果想使用上下的按钮,必须自定义按钮 5.3 尺寸和中心点,先设置尺寸,再设置中心点,避免中心点位置偏差 5.4 自定义按钮,调整内部子控件的位置,lable的尺寸设置为自适应就可以显示原本输入的文字.
使用Xib的注意点:
1.如果一个控件通过xib描述加载,那么默认加载出来是xib尺寸,如果一个view通过xib加载,是否需要重新设置frame? 需要再次设置Frame.为了方便做屏幕适配,在viewDidLoadSubviews写代码
2.在viewDidload设置子控件的位置和frame是否合适?
layoutSubview是控件的方法,viewDidLoadSubviews是控制器的方法,这个方法的调用频率很高,所以创建view的代码不应该放到这里.这个方法里会真正执行约束.