繁体   English   中英

iOS MVC这是视图还是控制器?

[英]iOS MVC Is this a view or a controller?

我在这里使用普通英语。 我有这个很棒的应用程序有多个选项卡,每个选项卡(UIViewController的子类)都有东西。 其中一个选项卡内部有一个按钮(除其他外)并具有许多功能。 按钮很漂亮(我在网上找到的UIGlossyButton的子类)并显示麦克风如果按下按钮它(标签)会录制你的声音并自动停止(通过检测音量/超时)

  • 录制时,标签控制器会在按钮顶部显示LED指示灯
  • 录音后,按钮与anthor按钮交换显示扬声器
  • 轻敲扬声器可以播放您的声音
  • 在扬声器上滑动可让您“删除”,重置为麦克风

这个“小部件”很棒,我喜欢它。 现在我想把这个东西放在其他标签中,而不是整个应用程序。 这看起来像抽象而不是复制/粘贴的候选者。

让我失望的是:我应该将所有这些功能(逻辑显示/隐藏/交换按钮,录制声音,分析声级)组合成一个小部件吗? 如果是这样,我应该使用多少个类以及每个子类应该使用哪个类? 最后,在Interface Builder中,我应该将该对象拖到选项卡内的故事板上,然后我应该在“自定义类”框中键入哪些类。

对于单个UIView子类来说,听起来很多。 我绝对会将其分解为一系列类,或至少在扩展的UIGlossyButton和相关的UIViewController之间。

按钮的职责应该是:能够绘制自己,知道什么时候被按下,并且在对其采取行动时做什么做最少的逻辑(比如向UIViewController发送消息)。

将按钮本身视为MVC视图。 然后,控制器将实际知道如何为UI的操作背后的所有智能做些什么。 然后,声音计或语音文件等选项应该表示为模型对象/类。 有时我在iOS中发现创建显式模型类是过度的,所以我只使用普通的Cocoa类,如NSDictionary和多态来处理来自控制器的模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM