我正在开发一个练习应用程序,其中UI取决于练习的类型。有些练习将问题作为文本和答案作为文本。有些练习将问题作为文本和答案作为图像。另一个变体是问题中的图像和文字以及答案中的图像。我根据API从特定练习中获得的值创建了一个问题对象。该对象有许多字段作为可选字段。例如,图像是可选的。现在我面临的挑战是处理这种动态UI的最佳方法是什么。用简单的英语,如果它有图像,则显示imageView,如果它没有图像,则不要显示imageView并相应地调整其他UI元素。
答案 0 :(得分:1)
您可以拥有一个UIViewController子类,以及许多不同的故事板,每个故事板都有不同的布局和子视图。
每个故事板都将视图控制器的类设置为身份检查器中的自定义类。
您的视图控制器具有所有可能子视图的插座,每个故事板将其子视图连接到与其相关的插座。
当您需要呈现字符串的特定变体时,可以从特定于案例的故事板中实例化视图控制器(以编程方式或使用segues和storyboard参考)。
如果您只需要在一种情况下禁用一个特定的子视图,则可以执行以下操作之一:
false
。它会留在原地,并占据同一区域,但看不见。removeFromSuperview()
将其从主视图中删除。但是,如果其他剩余的子视图依赖于针对其布局的已删除子视图的约束,请注意。