1

在一个 UIVIew 中,我有 5 个图标(UIImageView)。我显示/隐藏图标。没关系。但我想如果我隐藏 2 个图标,其余的未隐藏(或未删除)显示视图中心。

如果显示全部:

http://sherad.info/elotte.jpg

我从视图 2 图标中删除(我尝试设置隐藏但效果相同)

[分享 removeFromSuperview]; [sms removeFromSuperview];

在这之后:

http://sherad.info/utana.jpg

我希望 3 图标显示在视图中心。所以以某种方式重新排列 UIView 中的图标。我怎么能解决这个问题?谢谢。

4

2 回答 2

1

我会假设图标后面的黑色区域是 UIView 并且图标已添加到静态位置?相反,如果您创建了第二个透明的 UIView 会怎样。确定要显示的图标并将它们添加到第二个视图中。它会从第二个视图开始,其大小与第一个视图完全相同,但是一旦您想显示更少,请从第二个视图中删除所有图标

for (yourIcon *icon in [secondView subviews]) {
    [icon removeFromSuperview];
}

将第二个视图的框架重置为您想要的长度并重新添加图标,然后将其放在第一个视图的中心

secondView.center = firstView.center;

要么做

[secondView setNeedsDisplay]

如果您之前将其删除(我认为没有必要),则将其重新添加为 firstView 的子视图。

于 2012-09-28T00:01:30.650 回答
0

子视图应该根据有多少其他图标来相对于彼此定位。每次发生添加或删除图标的事件时,您都应该调用一些布局代码来使图标自行定位。

删除视图应该让超级视图计算添加的子视图,根据屏幕宽度除以计数创建新的 x 坐标,然后设置所有子视图的帧。

可能有一种方法可以使用自动布局来做到这一点,但我不熟悉这些方法。

于 2012-09-27T21:58:51.077 回答