3

我的应用程序中有三个 UIView 在另一个之下。UIView 的数据由 API 响应填充。当对应的 API 响应为零时,我想隐藏 UIView。我正在检查 API 响应,如果它为零,我正在设置 [myview setHidden:YES] 隐藏视图,但这是我的问题。

说,如果第二个视图没有任何数据,它会被隐藏,但视图的坐标仍然被占用,我的第一个和第三个视图之间有很大的空白空间。

为了解决这个问题,如果第二个视图数据为零,我使用 UIView 动画方法将第三个视图移动到第二个视图的坐标空间。

这对我来说很好,但是如果我添加第四个或第五个视图,这种方法会增加我的代码的复杂性。我相信有比我的方法更好的解决方案,如果你能指导我找到比我更好的方法,那将会很有帮助。

谢谢

在提供的解决方案中,我选择了 Jonah.at.GoDaddy 提供的适合我的应用程序的解决方案。也感谢其他人提供了很好的投入。

4

3 回答 3

0

为什么不使用 0-3 个单元格的 UITableView 取决于您有多少 api 响应?

于 2013-09-09T20:15:54.013 回答
0

你可以做的是检查 API 并且只做

    UIView *APIView1=[[UIView alloc] init];
    [self.view addSubview:APIView1];

当您知道 API 可用时。

于 2013-09-09T20:09:30.473 回答
0

这对您来说可能是一个好方法:
1. 为您要用于放置视图的每个位置定义坐标,并将这些坐标存储在数组 A 中。
2. 每次向/从超级视图添加/删除视图时,添加/删除对该视图的引用到/来自数组 B。
3. 添加/删除引用后,运行一个循环并将数组 A 中的坐标分配给数组 B 中的视图帧。通过数组 id 分配它们。
4. 将该循环放入 UIView 动画块中。

现在您可以使用任意数量的视图并在您想要的位置删除/添加它们。

于 2013-09-09T20:51:10.997 回答