MVC简单理解与使用

关于项目开发的设计模式,MVC、MVVP...已有很多文章和大神做研究,不再班门弄斧。这里只是分享一点下自己在项目中遇到的问题和心得体会。

两个例子


1.看上图,点击用户的语音播放按钮,播放音频文件,然后开始滑动,滑动期间显示播放动画。解决方案,将Model添加BOOL属性进行标记,然后cell里面添加kvo监听,这样每个model就和相应的cell进行了绑定,在播放开始或停止的时候改变BOOL属性,然后kvo来改变view层的UI变化。


2.接着看上图,点击下载按钮,环型进度条的view显示下载进度,解决的时候方案类似,同样是给model添加progress属性,将下载类回传的float value 进度赋值,这是cell同样通过kvo来监听model得progress属性变化。

总结:以上是自己在项目中遇到的小问题,然后说一下自己的理解,一句话来概括就是view层的渲染需要依赖model层的属性来改变,特别是在这种cell复用机制中。

注意事项:由于kvo在使用结束需要移除观察者,而且因为cell是复用的,所以需要cell在赋值前先移除之前已经添加的观察者;曾经使用过RACObserve(target,path)方法,但是不知道怎样移除观察者,欢迎大神们指点,另外对这种ReactiveCocoa框架来说,觉得更应该关注的是它的实现机制。毕竟在Debug的时候发现,一个api里面要点30多个方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,192评论 4 61
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,368评论 0 1
  • 原理 图片轮播原理:将一系列大小相等的图片平铺,利用css布局只显示一张图片,其他图片隐藏,通过计算偏移量利用定时...
    黎贝卡beka阅读 2,274评论 1 2
  • 你会遇到很多人 他陪你走过这一段,他陪你走过那一段 走过的人都会让你成长 有些人注定只能一段 相互吸引的人有很多,...
    莫澜路子阅读 204评论 0 0
  • 上礼拜三,小史史给我发消息:燕燕,好久没看到你了,我们出来约饭吧。 我当然很开心,从上学期的课程结束之后,大概有一...
    Audreybiubiu阅读 534评论 1 2