在React和其他Web前端框架中,存在“条件渲染”的概念。您可以根据某些条件是否正确将UI的某些元素呈现给DOM。
条件渲染的概念在Xcode / Swift中如何工作?由于您显然是在情节提要上构建UI的,所以我不知道如何有条件地渲染元素。
一个特定的示例:假设我有一个数组数组,并且要为该数组中的每个数组呈现一个tableview。我将如何解决这个问题?
答案 0 :(得分:0)
简短的回答:“没有。”这不是iOS的工作方式。
答案 1 :(得分:-1)
比方说,我有一个数组数组,并且要为该数组中的每个数组呈现一个tableview。我将如何解决这个问题?
您可能会显示所有数组的列表(或每个数组对应的内容)和一个表。当用户选择列表中的其中一项时,您可以将表视图的数据源设置为使用相应的数组。
当然,这不是唯一的方法。如果您确实想为列表中的每个数组绘制不同的表,则可以执行此操作-您将负责代码。但是为什么要使事情变得更复杂呢?
由于您显然是在情节提要上构建了UI,所以我不知道如何有条件地渲染元素。
故事板不是构建UI的唯一方法,而且比静态元素集合还灵活得多。情节提要本质上是连接的场景的集合,其中每个场景都是一屏内容的模板。但是您的代码可以调整场景中的对象,包括隐藏或显示它们,更改它们的位置以及添加矿石以删除视图。因此,如果您想要一个场景,可以为列表中的每个项目使用不同的表,然后只需根据所选内容调整各个表的可见性即可。或者,您可能根本没有表,您的代码可以动态创建一个表并将其插入视图中。
简而言之:您对情节提要板的工作方式承担了太多的假设。开始阅读有关how view controllers work的内容,您很快就会对UI的控制方式有了更好的了解。
答案 2 :(得分:-1)
比方说,我有一个数组数组,并且要为该数组中的每个数组呈现一个tableview。我将如何解决这个问题?
由于使用了swift标签,因此您将编写代码-大概是Swift代码。
让我们变得更加具体。您有一个void Map::setPlayers(int x, int y, int player, int n)
{
position[n][0] = player;
position[n][1] = x;
position[n][2] = y;
cout << width << endl;
cout << length;
}
对象,该对象的数组为Bookcase
,每个Shelf
的数组为Shelf
。
如果您使用的是情节提要,则可以在情节提要中创建一个Book
场景,并具有单个表格视图,以将ShelfController
放在一个Book
中。您也可以使用Shelf
场景(例如,堆栈视图)。堆栈视图没有子视图,因为在设计情节提要时,您不知道需要显示多少个架子。
然后,在Swift代码中,为BookcaseController
提供其BookcaseController
模型对象时,Bookcase
实例化BookcaseController
场景中的每个ShelfController
一次。 Shelf
。它将每个Bookcase
添加为一个子视图控制器,并将每个ShelfController
的视图(一个表视图)添加为其(ShelfController
的)堆栈视图的一个安排好的子视图。 / p>