趣闻段子开发中遇到的问题以及心得体会

内涵段子项目过程心得体会记录

临时想到要记,可能有些遗漏,但总比没有好

1.scrollView嵌套ViewController的时候,在传值方面出现问题,平常的属性、协议方法传值失效,原因是因为ViewController 的初始化方法从

ViewController *viewController = [ViewController alloc]init];

变成了自定义的方法,所以平时的传值不能正常使用,开发过程中想到的办法为将值写进初始化方法中,在自定义的初始化方法里实现需求即可,如:

initWithText:(NSString *)text;

====

2.关于同一个Cell中出现不定数量的视图的情况,可以重新制定多个cell,但由于太乱,所以选择在同一个Cell中既做了多视图约束,也做了单视图约束,运行时可以实现,但出现视图重合以及重用问题,解决办法为每一个Cell的视图数量为多少则显示多少,其他的全部hidden掉,如单视图情况下,多制定的9视图则统统hidden,而在多视图情况下,将单视图hidden掉,这里会出现一个问题,即上一个多视图如果比下一个多视图的数量多,则会将多出来的重用,导致原本只有2张图的cell出现了3、4甚至5、6张,解决办法为每一次cell的执行除了需要的视图外,其他的统统hidden掉。

这里还存在一些疑惑,关于hidden的视图如果多了,会不会影响Cell的性能,关于tableViewCell的性能优化问题还有待研究

====

3.关于使用第三方类库 SDWebImage

使用该类库缓存的图片也可以实现归档与解档,这是开始没有想到的,其原理现在还是不清楚,如果可以,还是希望能够自己仿造SDWebimage写一个缓冲图片线程

===

4.关于下拉刷新以及上拉加载

原理:当tableView的_tableView.contentOffset.y变化时产生回调,_tableView.contentOffset.y如果为-150(可以自行设定)的时候,先说一点,_tableView的代理delegate也同样可以执行scrollView的代理方法,这里调用当tableView停止拖拽的时候调用的代理方法,在该方法里判断_tableView.contentOffset.y,满足条件则再次执行loadData方法刷新数据,其实不难。再说一点,这里不能哦按段tableView,bounds.origin,因为已经固定了

有待研究

===

5.还有待解决的功能

(1)首页的点击动画

(2)上拉刷新以及下拉加载

(3)SDWebImage的原理探究

(4)cell上控件的点击事件

(5)cell中图片显示的样式,确切来说就是希望可以获取到缓存到的image的长宽

(6)cell中图片的压缩

(7)现在的项目刷新耗费的流量大,没有可控性,有待优化

更新:在tableVIewCell中添加图片缓存,可以防止卡顿,但如果缓存数量多了,还是无法避免卡顿的问题,关于优化,可以在tableView进行滚动减速或者滚动停止的时候才开始缓存图片,这样可以省去一些缓存数量

(8)可监控网络情况,便于使用接口功能,省流量

(9)图片加载动画,app的动画效果还是需要重点研究,可提高用户的体验,画面感也好,同时有时间还需要加强一下UI的水平,就目前而言没有一次可以独立制作出一个比较好的UI

(10)加入短音频的功能

(11)关于cell高度的变化计算还是需要在深入的探究,现在对无图类型的cell算是熟练,但加入了多种元素之后的计算还没到家,额外说一点,自从学了编程后,心算口算能力反而查了很多,奇怪

(12)差点忘了,这次的内段段子图片的API接口中发现了一个问题,之前获取的接口,解析到的一个数组里的元素基本都是一样的,这样可以用model去配置属性等等的操作,但内涵段子图片接口里面,一个数组中出现了不同属性的情况,除了较多的单视图静态图片,有些数组多了一个is_gif属性,说明它是一个的gif图,有些多了一个thumb_image_list,说明他是多视图,这个多视图可能是多个静态视图,也可能是多个gif视图,这里的解决办法比较逗,创建了3个model,每次将数据存入_dataSource的时候都判断一次是属于哪个model(iskindof:)中间又做了属性的归档解档之类的代码,烦到死,肯定会有更简单的方法,但没有好办法的时候能解决的都是好办法,对吧

(13)…以后更新

小总结

项目也做了4天了,不算久,但却觉得没能达到预想的效果和进度,总的来说还是经验不足的问题,中间遇到的许多问题也不能完全解决,明后天还是需要接着完善项目,好困,暂时想到这么多,比较有印象的问题也就这些,其他的算是比较基础的,这些的熟练度自不必说,不然怎么好意思找工作,怎么赚钱,怎么养媳妇。。-

好咯,刷牙睡觉—-

更新:

1.gif图在预览的时候显示一个imageView,当gif图没有加载完毕就往下滑动,将cell放入重用池的话,上一个gif图的没有消失的ImageView会出现在下一个cell的图片上,待解决

2.tableView上的控件,点击可以打印该行数,方法为在自定义的cell中添加属性,NSIndexPath,然后在cell的生成方法中给该属性赋值,cell.indexPath = indexPath;

3.关于EXC_ARITHMETIC (code=EXC_I386_DIV, subcode=0x0))错误

一上午都可以,突然又一次就报错了,上网一查原来是在给imageView计算高度的时候是用除法计算的,而在除法计算中分母不能为0,虽然在获取图片宽高的时候基本不可能为0,但有可能出现取值错误而导致值为0的情况,所以这里加了个判断,先判断如果分母不为0则进行计算

更新:

1.图片image 的宽高获取可以通过属性 .size
2.归档解档的时候使用的 Key名即便不同的类也需要同名,否则解析不出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值