英语轻松读发新版了,欢迎下载、更新

iOS应用的界面比较复杂,应该怎么处理?

coltfoal 发布于 2015年07月24日
无人欣赏。

iOS是以Controller为核心的。

如果一个界面里面的内容很多,势必会造成在Controller里面需要产生的视图、模型、交互变多变复杂。如果每个功能独立那还好,实际上大部分功能都是互相影响的。Controller里面代理一大堆。

请问各位有经验的应该怎么处理这种问题?有什么通用的解决方法吗?

共12条回复
tinyfool 回复于 2015年07月24日

你还没懂啊,Delegate的意思就是可以代理到任何地方去,一般来说放在一个Controller是为了逻辑方便,真的太多了,你就Delegate到其他地方去就好了,或者设计一个基类,或者用类组合都可以

Liucien 回复于 2015年07月24日

ios是mvc模式为基础的,楼主可以查查mvvm模式。是mvc的一个改进,应该会有些思路

xcode123 回复于 2015年07月24日

用block代替delegate方便多了

windgo 回复于 2015年07月24日

可以这样想: 设计这么复杂的界面本身就是问题, 工程师都觉得复杂的界面, 用户用起来通常也不会好用. 可以反馈给产品重新设计.

coltfoal 回复于 2015年07月24日

1楼 @tinyfool 比如我可以使用category来处理不同的功能模块和代理,但是在这些代理里我还可能产生其他界面,也有可能需要修改其他功能模块可能产生的界面,并与其进行交互,那又是如何处理的?

coltfoal 回复于 2015年07月24日

3楼 @xcode123 block只是看起来简洁,但实际上要处理的东西还是那么多的。

coltfoal 回复于 2015年07月24日

4楼 @windgo 但,产品不会因为你的代码问题而修改设计,这是不争的事实。

coltfoal 回复于 2015年07月24日

感谢大家的热心回答。我可以举个例子,比如Microsoft在iOS的三个APP,单个界面囊括的东西很多,请问应该如何设计这种代码的结构,有没有类似的代码、文献等可以拜读参考?

windgo 回复于 2015年07月24日

7楼 @coltfoal 可以反馈嘛. 很多东西, 你不说, 别人也不知道. 另外开发的工期总是你决定的. 揉在一起的太复杂的东西, 开发时间会比较长. 另一方面说, 复杂问题的解决, 就是分解. 想办法把界面分成几块(1~7块), 如果某部分还是复杂, 接着分解. 把一个长列表一样的东西, 搞成n叉树一样的结构, 问题就简单了.

coltfoal 回复于 2015年07月24日

9楼 @windgo 但是n个叉之间还有可能相互影响呢?

董一凡 回复于 2015年07月24日

10楼 @coltfoal 两个 viewcontroller 也会互相影响啊,你可以思考下为什么一个 app 有几十个 viewcontroller 也不会有你说的很多东西揉在了一起的感觉。然后你就明白你的东西该怎么设计了,本质上是一回事

windgo 回复于 2015年07月24日

10楼 @coltfoal 尽量让依赖是单向的, 就是a模块调用b, 但是b模块不去调用a. 如果b模块调用a模块, 就用委托. 这样各个模块间的关系就不会变成一张网, 而是一棵树, 或者有层次结构的网.

本帖有12个回复,因为您没有注册或者登录本站,所以,只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。

登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]