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

iOS控件像android一样隐藏和消失

闾丘永春
2023-03-14

我在UI设计中使用了带有自动布局的故事板。基本上,在android中有三种不同的属性,如可见、不可见和消失。

例如:

   1) android:visibility="gone" // used to hide the control and as well as space
      (or)
      CONTROLNAME.setVisibility(View.GONE);
   2)  android:visibility="invisible" // used to hide the control but it will take space
      (or)
      CONTROLNAME.setVisibility(View.INVISIBLE);

在苹果系统中,

语言

  1) ?
  2) [CONTROLNAME setHidden:TRUE]; // used to hide the control but it will take space

迅速的

  1) ?
  2) CONTROLNAME.isHidden = true  // used to hide the control but it will take space

作为一个消失在iOS我已经从谷歌搜索,但我找不到解决方案。

共有3个答案

屠兴旺
2023-03-14

删除子视图或调整框架对我都不起作用,因此作为替代解决方案,我通过编程添加了一个约束,自动调整差异。

例如:如果您有三个视图,A_view B_view和C_view按此顺序垂直对齐,并且您想要“隐藏”B并调整差异,请添加约束

B_view.removeFromSuperView()
var constr = NSLayoutConstraint(item: C_view, 
                                attribute: NSLayoutAttribute.Top, 
                                relatedBy: NSLayoutRelation.Equal, 
                                toItem: A_view, 
                                attribute: NSLayoutAttribute.Bottom,
                                multiplier: 1,
                                constant: 20)
view.addConstraint(constr)

常量是(在本例中)C_view和A_view之间的垂直空间量

这对我很管用,但需要了解约束条件

颜宸
2023-03-14

例如,如果你的观点

@property (weak, nonatomic) IBOutlet SearchBarView *searchBar;

已经有一个约束。通过将约束拖动到. hfile.ex来添加一个新的IBLayout:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintSearBarHeight;

在你喜欢的任何地方做这件事

self.constraintSearBarHeight.constant = 0;

如果您的视图还没有约束。我发现这个答案很有帮助。只需执行以下操作

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.searchBar attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0]];
夏英发
2023-03-14

要删除视图(控件)所占用的空间,可以将它的框架的< code>size减小到零,或者将其从视图层次结构中删除。即通过调用控件上的< code>removeFromSuperview。

例如,如果您必须删除由< code>UITextField(比如< code>CONTROLNAME)占用的空间,那么您可以使用:

CGRect tempFrame = CONTROLNAME.frame;
CGSize currentSize = tempFrame.size; //for later use
tempFrame.size = CGSizeZero;
CONTROLNAME.frame = tempFrame;

CGRect currentFrame = CONTROLNAME.frame; //for later use
[CONTROLNAME removeFromSuperview];

更新:

在第一种情况下,您必须存储先前的大小,以便将控件带回其初始位置。

CGRect tempFrame = CONTROLNAME.frame;
tempFrame.size = currentSize; //set to initial value
CONTROLNAME.frame = tempFrame;

在第二种情况下,您必须存储控件的帧以使其返回到其初始位置(如果它是局部变量或弱实例变量,则还要存储控件本身)。

CONTROLNAME.frame = currentFrame;
 类似资料:
  • 我目前正在开发一个响应网站使用Twitter引导。 该网站有一个全屏背景图像的移动/平板/台式机。这些图像通过使用两个div旋转和淡化通过每一个。 几乎完美无缺,除了一个问题。使用iOS Safari、Android浏览器或Android上的Chrome时,当用户向下滚动页面时,背景会略微跳转,导致地址栏隐藏。 网址在这里:http://lt2.daveClarke.me/ 在移动设备上访问它并向

  • 我想隐藏在外部存储器上创建的文件夹,获取隐藏文件夹的路径,以共享在隐藏文件夹中找到的数据。我怎样才能做到这一点。从现在起我所做的一切。 分享 共有putExtra(Intent.EXTRA_流,Uri.parse(“file:///sdcard/mdata/“路径”);

  • 我在努力使用我的应用程序。它应该像下面这样工作。

  • 本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()

  • 当鼠标越过按钮时,我希望它隐藏起来,当鼠标离开按钮时,我希望按钮重新出现。但我需要使用onmouseover和onmouseout。 null null

  • 感性认识 界面介绍,viewer Geocoder : 查找位置工具,查找到之后会将镜头对准找到的地址,默认使用bing地图 Home Button :视角返回初始位置. Scene Mode Picker : 选择视角的模式,有三种:3D,2D,哥伦布视图(CV) Base Layer Picker : 图层选择器,选择要显示的地图服务和地形服务. Navigation Help Button