2016-12-07 148 views
2

我已将自动布局的故事板用于我的UI设计。基本上在android中有三种不同的属性,像Visible和Invisible那样会消失。适用于Android的iOS View.GONE setVisibility模式

例如:

1)的Android

mTextView = (TextView) findViewById(R.id.textview); 
mTextView.setVisibility(View.GONE); 

2)目标C

UIView *a = [self.view viewWithTag:2] 
I want to process View.GONE... 

为充当去在IOS我已经从谷歌搜索但我不能能够找到解决方案。

+0

什么View.GONE在android? –

+0

如果我没有错,你不想使用View.GONE来使用View的布局空间。我对吗?? –

+0

in ios'GONE'不能在这个地方使用'enabled或hidden property' –

回答

0

在iOS上,visiblegonehidden = NOhidden = YES

做如果你希望它是无形的,alpha视图设置为0

编辑:使视图隐藏不会使布局层次结构忽略它,除非它处于堆栈视图中。

1

一些google搜索后,我发现这一点:

View.GONE - 这种观点是不可见的,并且它不采取任何空间布局的目的。

View.INVISIBLE - 此视图是不可见的,但它仍占用空间用于布局目的。

及其等价于IOS是:

View.GONE - 卸载视图。这可以从故事板完成,如下图所示。你将不得不取消的复选框Installed enter image description here

View.INVISIBLE - View.hidden = TRUE;

+0

这就是很好的信息..取消选中安装将解决这个问题。 ..我不得不将高度约束设置为零,以使这种情况发生 – Veeravel

+0

赞成指出**安装** – Veeravel

0

信,

Android不使用自动版式来计算视图组件和类似的CSS(层叠样式表)的框架,它使用的视图分量的相对值相对于母体,边缘或其它对等观点来计算视图的位置。

但在iOS的当u使用自动布局,您可以定义哪些是数学表达式的约束和iOS评估他们找到的实际值各种组件:)的帧

请告诉我它的意义是什么?

因为自动布局约束是数学表达式,所以您必须提供iOS足够的数据来计算未知值。

让我们考虑,

enter image description here

正如你可以看到粉红色的看法有从绿色视图一个固定的水平间距,所以iOS的计算从绿色的maxX的位置粉红视图的x坐标位置查看+绿色和粉红色视图之间的水平间距:)

现在假设你在绿色视图中调用view.GONE并完全移除绿色视图,现在iOS会很困惑,因为它不知道粉红色视图的x位置是什么,现在它没有足够的数据来计算粉色视图的x位置:)

这是否意味着我无法在iOS中实现View.GONE?

你可以!!实际上只是:P

如何?

两种方式:

方式1

不能删除视图,因为这将导致其离开取决于它处理的帧计算所有联合国其他视图。因此,考虑设置宽度和高度约束的常量的意见值设置为“0”

添加高度和宽度限制到要隐藏,并创建一个IBOutlet中,以高度和宽度的限制的观点。

现在,当你想隐藏简单地说,

self.greenViewHeightConstraint.constant = 0 
self.greenViewWidthConstraint.constant = 0 
self.view.layoutIfNeeded() 

呀!现在你有一个视图,其宽度和高度为0,我的意思是存在但不存在!

路2

但是,你真的凭着使用方法1是否删除它???不。您可以使用方式2

enter image description here

我希望你在这里看到的是,现在我知道,如果我删除视图1,图2无法计算其x位置什么实际删除视图,所以我创建了一个领先约束从View2到Parent左边距,并将其优先级设置为High,并将其常量设置为0:

现在,只要所需(1000)约束条件足以计算值,该约束就不会发挥作用,现在假设你删除视图1,视图2的框架不能与所需的限制来计算,因此高约束踢它说你的粉红色的看法应该是从父母0像素留有余量:)

呀:)你实现你想要的东西,现在你居然取出绿色的观点和粉红色视图仍然没有失去它的框架:)

如何在地球上你删除的绿色观点?

是不是这个问题?对不起,我被带走了:)

你可以这么说self.greenView.removeFromSuperview()

相关问题