V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  itenyh  ›  全部回复第 8 页 / 共 8 页
回复总数  147
1  2  3  4  5  6  7  8  
iOS 有岗位吗?
2018-07-26 11:00:46 +08:00
回复了 Edwards 创建的主题 问与答 关于 MVC 的理解
Model 是存放数据的地方,并不负责处理数据;如果是 MVC 模式,数据处理应该放在 C 中,这会导致 C 变得越来越大,为了解决这个问题,出现了 MVVM。
@forkon 继续谈谈 ABC 三个 scrollview 这样的架构。刚才的 16 楼的方案,有 userInteractionEnabled 必须设置为 NO 的致命问题,这其实是彻底放弃了 AB 对任何手势的响应权利。但是这个方案明显的优点在于利用 C 的手势,解决 AB 滑动以及其流畅切换的问题。
那么思考一下,我能不能在 scroll 的时候让 C 来响应,而 touch 让 AB 来响应。从更底层来思考一下,当手指触碰到屏幕并产生动作后,系统应该要决定两件事:1、谁来响应(通过 hittest ) 2、如何响应( scroll,touch......)。能不能在知道是 scroll 后让 C 来响应,touch 则 redirect 给 AB ?
@sunhr 第一点经我试验,AB 肯定是不会跟随的。 第二点如果 AB 需要接受 touch 事件就杯具了,这特么确实是个悲剧!看看有没有办法改进。
懒得写了,简单说一下核心思想:和 @sunhr 实质是一样的。 首先 superview 是一个 scrollview (简称 C ),superview 上摆放你的 scrollviewA ( A ), scrollviewB ( B ):
1. AB 把 C 完全遮住
2. AB userInteractionEnabled = NO
3. C 的 contentsize 的 height (如果你是垂直滑动)等于 AB 的 contentsize 的 height 之和。
好了,现在你滑动手势并不会让 AB 移动,而是让 C 移动,不过你看不到。这样,你可以通过 C 的 contentoffset 的变化来操纵 AB 的 contentoffset 的变化了。
核心思路是这样,还有些细节,慢慢搞吧。
@forkon 我试了一下,基本实现了你的需求,等下空了发上来,不过有点绕。感觉 @sea516 有更简单的办法。
以前也有类似的经历,只能说不论你做什么决定,都支持你!
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2538 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 15:36 · PVG 23:36 · LAX 07:36 · JFK 10:36
Developed with CodeLauncher
♥ Do have faith in what you're doing.