由于即将到来的最后期限,我正在寻找一种最简单可行的方式来组合一个漫画阅读器应用程序。
我目前的设计如下:
UIViewController
的子类,UIImageView
内包含UIScrollView
。UINavigationController
。通过这个基本方案,我会将20 + UIViewController
推到彼此之上,每页一个。
我的问题是:这是滥用UIViewController
,还是不可取的解决方案?
我认为而不是做的是,有一个UIViewController
可以移动一些包含页面内容的子视图。但如果上述想法可行,那将更容易 - 我不必手动编写任何页面转换逻辑和放大器。动画,只需按下。
我是iOS的新手,并且在我所拥有的时间范围内努力学习以找到最佳解决方案,因此非常感谢任何帮助或方向。以这种方式设置应用程序显然是不被禁止的,但在学习实例化ViewController之后,然后在另一个UIViewController
中使用.view(我在应用程序的另一部分中执行),这真的是不好的做法,我'我怀疑我应该如何使用UIViewController
。
答案 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
)。NSArray
)。int
)。ComicBookTransitionType
)。查看强>
UIViewController
)。ComicBookModel
)。UIView
)。 (我可能会预先加载这个以保证页面之间的平滑过渡,所以作为下一个属性)。UIView
)。类似的东西,剩下要做的事情(以及真正棘手的部分)是将值从MainView更改为NextPage或上一页。
另一个选择是去Ebook Framework。