APP<疯狂食材>开发总结
来源:互联网 发布:平安知鸟app下载ipad 编辑:程序博客网 时间:2024/05/06 22:32
<疯狂食材>
一、疯狂食材是我学iOS以来第一个app,虽然功能不算难,但在整个开发过程中也有很多细节要处理,期间也遇到了挺多小问题,在解决问题的同时也学到了挺多,对iOS开发的认识也提高了。
二、在整个开发周期都是遵循MVC模式和面向对象思想,下面讲下开发的具体细节。
三、开发细节:
1、app开发难免需要用到第三方插件,所以用cocoapods来管理。
在这里我只用了AFNetworking(网络请求),SDWebImage(图片下载),libWeChatSDK(微信分享)。
2、项目目录:
2.1、主视图控制器(Main/Controller),UITabBarController,TabBar则是自己通过代码自定义View来代替。
1):定义两个图片数组,分别是选中状态和非选中状态的图片,通过功能按钮点击来切换图片,这里不涉及变化图标。
2):通过for循环加载5个功能按钮,按钮上在加iamgeView,图标大小20x20pix。并给按钮tag赋值(值最好从0开始,方便TabBarConntroller切换视图),在按钮点击事件中通过tag来判断点击那个按钮,并调用代理方法,回传selectedIndex值。
3):按钮布局完,在定义label作为选中按钮的状态下划线,点击按钮时,通过在UIView的动画中改变label的frame,来达到状态线向左向右滑动的效果。
2.2、类别(Category/)
1、设计思路:
1)、类别是软件默认打开的功能模块;首先加载UIActivityIndicatorView俗称“菊花器”等待网络数据异步请求,当异步请求完成时停止“菊花器”。最后根据网络请求回来的数据开始界面布局。
2、网络请求:
1)、网络请求采用第三方工具AFNetWorking。异步请求过程中通过block回调处理请求成功和请求失败。
2)、当网络请求失败,则弹出对话框,提示检查网络,并在view中添加临时按钮,点击按钮可以重新请求网络数据。并把临时按钮从视图控制器中移除。
3、界面布局:
1)、网络请求回来的json数据通过自定义处理后保存到可变数组dataSource中,然后在
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
方法中,根据indexPath的section对应dataSource数据源,返回相对应的cell行高。
2)、防止cell的重用机制出现。在UITableView注册中,运用for循环指定不一样的forCellReuseIdentifier。
在取cell中通过indexPath取其对应注册的cell。
3)、自定义cell,在自定义cell中采用XIB跟代码混合。绝大数cell是代码写的。代码写的cell就是将控件add到cell中。但在UITabelView上下滑动过程中,cell会重新add,导致label控件显示的文字会不断的加深。为了解决这种情况通过可变字典来解决,但凡第一次add后,改变对应的字典key。如果key改变了下次就不add控件。
2.3、功效(Efficacy/)
2.4、人群(Crowd/)
2.5、营养(Nutrition/)
设计跟实现与2.2大体一致。
2.6、更多(More/)
1)、清除缓存:
这里的缓存主要是第三方插件SDWebImage的缓存图片。
//通过这个方法可以得到缓存图片的大小,单位是M。[[SDImageCache sharedImageCache] getSize]/1024.0/1024.0;[[SDImageCache sharedImageCache] clearDisk];//通过这两个方法清除SDWebImage缓存图片。[[SDImageCache sharedImageCache] clearMemory];
2.7、搜索的3D球模型(Search and Share/)
1)导入第三方类库:
2)、给球体上所有的按钮不同的背景颜色:
+(UIColor *) randomColor{CGFloat hue = ( arc4random() % 255 / 255.0 ); //0.0 to 1.0CGFloat saturation = ( arc4random() % 127 / 255.0 ) + 0.5; CGFloat brightness = ( arc4random() % 127 / 255.0 ) + 0.5; return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];}
3)、根据第三方3D球型Demo使用。
2.8、微信分享:
1)、在需要分享的页面(Category/CIItemsInfoViewController)点击按钮进行分享,普通申请微信应用只有分享到朋友圈和微信好友的权限。
2)、调用:
3)、获取当前屏幕的截图:
四、软件运行截图:
0 0
- APP<疯狂食材>开发总结
- 疯狂食材总结
- 疯狂食材 总结
- 项目:疯狂食材总结
- 疯狂食材项目总结
- 疯狂食材项目总结
- IOS项目:疯狂食材软件总结
- 疯狂食材练手项目总结
- 项目总结——疯狂食材
- UI星辰:疯狂食材总结
- 前腾讯员工离职三个月开发出 app store排名第一应用疯狂猎鸟的总结
- IOS7 APP开发总结
- Hybird APP 开发 总结
- web app开发总结
- Hybrid app开发总结
- Android App开发总结
- 微校APP 开发总结
- Hybrid App开发总结
- http 错误代码表
- Maximizing XOR
- 正确使用Android性能分析工具——TraceView
- spring源码如何在eclipse中导入
- 最小堆
- APP<疯狂食材>开发总结
- Android Studio常用插件
- html中的<b>和<strong>有什么区别呢?
- Swift学习 OOP三大特性:继承、多态、封装
- 【IOS 开发学习总结-OC-57】★UI之UICollectionView 与UICollectionViewController
- 24.House Robber (DP)
- 未能加载文件或程序集XXX
- objc/runtime 探索
- JavaMail jar包冲突