本文介绍了iOS控件像android一样捉迷藏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在UI设计中使用了带有自动布局的情节提要.基本上,在android中,有三种不同的属性,例如 Visible Invisible Gone .

I have used storyboard with autolayout for my UI design. Basically in android there are three different properties will be there like Visible, Invisible and Gone.

例如:

   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);

在iOS中,

objective-c

  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

我已从Google搜索

在iOS中用作已消失,但找不到解决方案.

for act as a Gone in iOS i have searched from google but i can't able to find the Solution.

推荐答案

要删除视图(控件)所占用的空间,可以将其框架的size减小为零,也可以将其从视图层次结构中删除. IE.通过在控件上调用removeFromSuperview.

To remove the space occupied by a view(control) can either reduce the size of its frame to zero or remove it from the view hierarchy. I.e. by calling removeFromSuperview on the control.

例如,如果您必须删除UITextField占用的空间(例如CONTROLNAME),则可以使用:

For example if you have to remove the space occupied by a UITextField (say CONTROLNAME), then you can either use:

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];

更新:

在第一种情况下,您将必须存储较早的大小才能使控件返回到其初始位置.

In the first case you will have to store the earlier size to bring back the control to its initial position.

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

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

In the second case you will have to store the frame of the control to bring it back to its initial position (and also the control itself if it is a local variable or weak instance variable).

CONTROLNAME.frame = currentFrame;

这篇关于iOS控件像android一样捉迷藏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 04:30