【问题标题】:Two UILabels under each other, hide the top one两个UILabel在下,隐藏最上面的一个
【发布时间】:2012-01-25 14:20:00
【问题描述】:

如标题中所述,我有一个应用程序,其下有两个 UILabel。如果我想以编程方式隐藏到顶部,可以使用 myLabel.hidden = true。

如果我在 Android 中执行此操作(使用 myLabel.setVisibility(View.Gone);),此标签下的标签将向上移动。

但如果我是为 iOS 做的,标签是隐藏的,但仍然有一个空白区域而不是标签。

知道如何解决这个问题吗?

【问题讨论】:

  • 我们应该在该屏幕截图中看到什么?你确定你有两个标签吗?
  • @Vince 好吧,我当然有三个标签。如果我隐藏第二个,第三个应该位于第一个之下。在屏幕截图中,如果隐藏标签,您可以看到空白区域。
  • 标签不会自行向上移动,请更改其frame 以做到这一点。
  • 他的意思是:pastie.org/pastes/3250072/text

标签: objective-c ios xcode


【解决方案1】:

隐藏第二个的时候,获取它的frame,隐藏它并改变第三个的frame属性:

CGRect secondFrame = secondLabel.frame;
secondLabel.hidden = YES;
thirdLabel.frame = secondFrame;

【讨论】:

  • 确实有效,谢谢。但关键是:我在彼此下方有 8 个标签。每个标签内容可以为空,如果为空则不应显示。这意味着我必须更改很多帧.. =/
  • 抱歉,不知道详情。当然这种情况要复杂一些,你必须想象这样的机制。这里的一般想法是标签不会自行向上移动,即使它们是空的或隐藏的
  • @harmjanr for iOS 只需在其中一个更改时重建包含所有标签的视图
【解决方案2】:

做这样的事情:

[UIView animateWithDuration:0.3
                 animations:^{label1.alpha = 0;
                              label2.frame = label1.frame}
                 completion:NULL]; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多