iOS漫画阅读器 - 这是一个可行的设计吗?

时间:2012-02-12 19:56:21

标签: iphone ios xcode

由于即将到来的最后期限,我正在寻找一种最简单可行的方式来组合一个漫画阅读器应用程序。

我目前的设计如下:

  • 每个网页都是UIViewController的子类,UIImageView内包含UIScrollView
  • 点击屏幕右侧将另一个页面推到UINavigationController

通过这个基本方案,我会将20 + UIViewController推到彼此之上,每页一个。

我的问题是:这是滥用UIViewController,还是不可取的解决方案?

我认为而不是做的是,有一个UIViewController可以移动一些包含页面内容的子视图。但如果上述想法可行,那将更容易 - 我不必手动编写任何页面转换逻辑和放大器。动画,只需按下。

我是iOS的新手,并且在我所拥有的时间范围内努力学习以找到最佳解决方案,因此非常感谢任何帮助或方向。以这种方式设置应用程序显然是不被禁止的,但在学习实例化ViewController之后,然后在另一个UIViewController中使用.view(我在应用程序的另一部分中执行),这真的是不好的做法,我'我怀疑我应该如何使用UIViewController

1 个答案:

答案 0 :(得分:1)

我不知道你怎么认为这是一种虐待,也许是记忆式的谈话?或者这可能不是最优雅的解决方法吗?

这肯定不是解决这个问题的最佳方法,我确信操作系统处理这个问题没有问题(对于旧版本的硬件,我可以想象一些故障)。例如,尝试在Twitter iOS应用程序中做一些滥用行为,转到您的个人资料,然后查看您的推文之一,然后一次又一次地转到该推文的个人资料或类似内容。或者浏览不同的配置文件和推文,我看到内存管理非常棒。因此,只要您实施didReceiveMemoryWarning方法,就不必担心内存。

来自UIViewController类reference page

  

内存管理

     

内存是iOS中的关键资源,视图控制器提供   内置支持,可在关键时刻减少内存占用   倍。 UIViewController类提供了一些自动处理   低内存条件通过didReceiveMemoryWarning方法,   释放不需要的内存。在iOS 3.0之前,这种方法就是   唯一的方法是释放与自定义视图关联的额外内存   控制器类,但在iOS 3.0及更高版本中,viewDidUnload方法   可能是一个更适合大多数需求的地方。

     

发生内存不足警告时,UIViewController类将清除   它的视图是否知道它可以在以后重新加载或重新创建它们。如果   发生这种情况时,它还会调用viewDidUnload方法来提供代码   有机会放弃任何相关对象的所有权   与您的视图层次结构,包括使用nib文件加载的对象,   在viewDidLoad方法中创建的对象,以及懒惰创建的对象   在运行时并添加到视图层次结构中。通常,如果您的观点   controller包含outlet(属性或包含的原始变量)   在IBOutlet关键字中,您应该使用viewDidUnload方法   放弃对这些网点的所有权或任何其他与视图相关的数据   那你不再需要了。

现在,如果我有时间实施另一个解决方案,我可能会设计一个包含每个视图中所有内容的模型。

<强>模型

  • 标题(NSString)。
  • PagePaths(NSArray)。
  • CurrentIndex(int)。
  • TransitionType(ComicBookTransitionType)。

查看

  • MainView(UIViewController)。
  • MyModel(ComicBookModel)。
  • NextPage(UIView)。 (我可能会预先加载这个以保证页面之间的平滑过渡,所以作为下一个属性)。
  • PreviousPage(UIView)。

类似的东西,剩下要做的事情(以及真正棘手的部分)是将值从MainView更改为NextPage或上一页。

另一个选择是去Ebook Framework