【问题标题】:UIView center X UIImageViewUIView 中心 X UIImageView
【发布时间】:2012-09-27 21:40:23
【问题描述】:

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

如果全部显示:

http://sherad.info/elotte.jpg

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

[分享 removeFromSuperview]; [sms removeFromSuperview];

之后:

http://sherad.info/utana.jpg

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

【问题讨论】:

    标签: ios


    【解决方案1】:

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

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

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

    secondView.center = firstView.center;
    

    要么做

    [secondView setNeedsDisplay]
    

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

    【讨论】:

    • 不客气。如果可以,请在我的文本左侧选择我的正确答案(复选标记)。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多