当前位置: 首页 > 知识库问答 >
问题:

iOS相当于Android View。消失的可见性模式

琴修为
2023-03-14

我正在为iOS开发一个应用程序,我正在使用自动布局的故事板。我的一个视图控制器有一组4个按钮,在某些情况下,我想让第一个按钮消失。

如果我使用setHidden:TRUE方法,UIButton将不可见,但它显然仍占据了视图中的空间,结果是我无法填充一个“洞”,使剩余的UIButton朝主视图顶部浮动。

在Android系统中,我会简单地使用View。消失了而不是查看。不可见,但在iOS中,我被这种行为所困扰,我不想相信唯一的解决方案是手动(是的,我指的是编程方式)将其余元素移动到顶部。

我本以为我可以通过设置某种约束,使一切都像Android系统一样自动化,但我运气不好。

在我关闭自动布局之前,有人能告诉我正确的方向吗?

我使用的是IB,但我对编程的东西也很满意。

更新:

组件高度设置为0也没有帮助。

我试过这样的方法:

UIButton *b;
CGRect frameRect = b.frame;
frameRect.size.height = 0;
b.frame = frameRect;

共有3个答案

马正初
2023-03-14
override func viewDidLoad() {
    super.viewDidLoad()
nsLcButtonHeight.constant = 0
}
况庆
2023-03-14

所有关于这个问题的答案都是低效的。在iOS上实现Android setVisibility的最佳方法StackView首先选择组件,然后在编辑器、嵌入、堆栈视图中,

将新堆栈视图与IBOutlet连接,然后:

隐藏:

UIView * firstView = self.svViewFontConfigure.arrangedSubviews[0];
        firstView.hidden = YES;

能见度:

UIView * firstView = self.svViewFontConfigure.arrangedSubviews[0];
        firstView.hidden = NO;

使用堆栈视图时,将保留所有约束!

文件

柴嘉禧
2023-03-14

添加一个将视图高度设置为0的约束(NSLayoutAtBayteHeight)对我有用:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.captchaView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0]];
 类似资料:
  • 我对SQS非常陌生,如果我忽略了一些显而易见的事情,我很抱歉,但是有没有办法获取SQS中消息的当前可见性超时?我可以在这里看到如何更新超时可见性。但是我没有看到任何关于获取消息当前可见性超时的信息(也许你可以在收到消息时查看)。 我的用例是根据给定消息的当前可见性超时更改可见性超时。这可能吗? (注意:我知道我可以使用近似的接收时间来达到类似的效果,如果不可能获得当前可见性时间,我会走那条路)

  • 项(item)默认情况下拥有私有的可见性(private visibility),不过可以加上 pub (public 的前 3 个字母)修饰语(modifier)来改变默认行为。一个模块之外的作用域只能访问该模块里面的公有项(public item)。 // 一个名为 `my` 的模块 mod my { // 在模块中的项默认带有私有可见性。 fn private_functio

  • 我熟悉在Android中使用AsyncTask:创建一个子类,在子类的实例上调用execute,在UI线程或主线程上调用onPostExecute。iOS中的等价物是什么?

  • 问题内容: 在iOS应用中,我使用了 获取正在webView上显示的图像的src目录。我想对Android执行相同操作。我有什么选择? 基本上,目的是捕获路径,以便我可以通过电子邮件发送此图片… 即。 这样,当用户单击链接或将其发布到facebook等时,将加载相同的图像。 问题答案: 是的,我在Android中非常想念这种方法;) 要执行JavaScript并获得响应,您可以执行以下操作: 在代

  • GridViewColumnExt是从GridViewColumn继承并添加可见性属性的类。 您可能会看到,我的ListView的ItemsSource被设置为寄存器ObservableCollection。Register类有一个名为vis的bool类型的属性。对于TextBox来说,这一切都很好,但是从GridViewColumnExt don来看,我认为我无法到达集合并绑定到特定的对象。 我

  • 我所拥有的 我不能使用onResume(),因为左边和右边的片段已经创建了。我不能使用setUserVisibilityHint(),因为它是在onCreateView()之前调用的,所以视图还没有准备好。 那么,当某个特定片段对用户可见时,应该采用什么方法来动画视图呢?