【问题标题】:iOS Change UIView content at runtimeiOS 在运行时更改 UIView 内容
【发布时间】:2015-12-05 12:15:17
【问题描述】:

我有三个 UIView,它们跨越屏幕的宽度,每个都垂直占据屏幕的三分之一。中心 UIView 包含用户填写的表单。我有几个表单需要从中心 UIView 切换出来。现在在情节提要中,每个 UIView 都位于顶部和底部 UIView 之间,并且根据用户选择隐藏视图。有没有更好的方法来做到这一点?也许只有一个中心视图并通过 XIB 更改内容?谢谢。

【问题讨论】:

    标签: ios ipad uiview uistoryboard xib


    【解决方案1】:

    如果您的表单足够小,那么这种方法可能没问题。足够小是指它们内部没有太多(理想情况下是任何)业务逻辑/验证等。

    但是,如果您的表单具有验证和其他不真正属于视图层的内容,您可以在每个表单中嵌入一个 ViewController 来处理逻辑?

    我会考虑使用 UIPageViewController 来包含这些内容,并在故事板中嵌入 segue io 将页面控制器嵌入到故事板中。

    这是一项相当多的工作,因此值得考虑是否值得付出努力。它的好处是模块化和可测试性——你不会得到一个包含所有代码的单一视图控制器:) 你还可以利用 UIPageViewController 将为你做的内存优化。它会处理表单之间的转换,虽然我不知道它们是否会是你想要的转换:)

    缺点是架构复杂。

    【讨论】:

    • UIViewController 处理所有操作,包括验证。我不认为 UIPageViewController 会起作用,因为他们希望三个视图在屏幕上可见,可能需要一点滚动。故事板变得越来越大,添加新部分需要做很多工作。
    • 啊,抱歉 - 我以为只有一个可见,而您在它们之间切换。你是对的, UIPageViewController 根本不会帮助你!在这种情况下,您仍然可以在每个表单中使用 UIViewController,只需使用 paging=YES 手动将视图添加到滚动视图?
    • 我希望我能走那条路。这会更容易。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2018-12-27
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多