Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone view.hidden=x和[view setHidden:x]之间的差异_Iphone_View_Show Hide - Fatal编程技术网

Iphone view.hidden=x和[view setHidden:x]之间的差异

Iphone view.hidden=x和[view setHidden:x]之间的差异,iphone,view,show-hide,Iphone,View,Show Hide,我正在调试一个iphone应用程序,看到一些我不完全理解的东西 根据用户的选择,将显示或隐藏UIView。当前代码使用[view setHidden:NO]和[view setHidden:YES]显示或隐藏视图。这是行不通的:从视觉上看,这些语句似乎被忽略了。但是,当我分别将它们更改为view.hidden=NO和view.hidden=YES时,一切都按预期进行 我认为这两种语法是等价的,但显然不是。对于所有其他属性(文本,字体,等等),它们的工作原理相同,那么隐藏有什么特别之处呢 编辑:这

我正在调试一个iphone应用程序,看到一些我不完全理解的东西

根据用户的选择,将显示或隐藏UIView。当前代码使用
[view setHidden:NO]
[view setHidden:YES]
显示或隐藏视图。这是行不通的:从视觉上看,这些语句似乎被忽略了。但是,当我分别将它们更改为
view.hidden=NO
view.hidden=YES
时,一切都按预期进行

我认为这两种语法是等价的,但显然不是。对于所有其他属性(
文本
字体
,等等),它们的工作原理相同,那么
隐藏
有什么特别之处呢

编辑:这是我的一些代码的复制/粘贴。我正在使用带有iPhone模拟器5.0的XCode 4.3

下面是我的项目中的一个例子

IBOutlet UIView *panel;    //Connected in interface builder

===========

- (void)makePanelVisible:(BOOL)visible
{
    [panel setHidden:!visible];    //this does not work
    panel.hidden = !visible;       //this does work correctly.
}

hidden是UIView的一个属性。编写[panel setHidden:YES]时,尝试调用应将属性设置为hidden的方法setHidden。该方法不起作用,因为UIView中不存在该方法:

我总是通过写“view.hidden=x”来设置属性


我希望它能帮助您

隐藏是UIView的一个属性。编写[panel setHidden:YES]时,尝试调用应将属性设置为hidden的方法setHidden。该方法不起作用,因为UIView中不存在该方法:

我总是通过写“view.hidden=x”来设置属性


我希望它能帮助您设置视图是否隐藏

- (void)setHidden:(BOOL)flag
返回接收器是否标记为隐藏

- (BOOL)isHidden

隐藏=是;与setHidden相同:是;区别在于,您将立即将“隐藏”设置为“是”,而sethidden view将从其窗口中消失,并且不会接收输入事件,因为它被设置为“隐藏”。但是,它仍保留在superview的子视图列表中,并像往常一样参与自动调整大小。

设置视图是否隐藏

- (void)setHidden:(BOOL)flag
返回接收器是否标记为隐藏

- (BOOL)isHidden

隐藏=是;与setHidden相同:是;区别在于,您将立即将“隐藏”设置为“是”,而sethidden view将从其窗口中消失,并且不会接收输入事件,因为它被设置为“隐藏”。然而,它仍然保留在superview的子视图列表中,并像往常一样参与自动调整大小。

回想起来,我记得差不多3年前,当iPhone 3(甚至不是3G)风靡一时时,我也遇到了同样的问题。我不知道为什么会发生这种情况,但确实如此,所以我只是通过使用“点”符号设置属性来处理它。我想,这是一个“如果它没有坏就不要修复”的东西(好吧,它有点坏了,但有一个简单的方法,所以我在使用它)。

回想一下,我记得差不多3年前,当iPhone 3(甚至不是3G)风靡一时时,我遇到了同样的问题。我不知道为什么会发生这种情况,但确实如此,所以我只是通过使用“点”符号设置属性来处理它。我想,这是一个“如果它没有损坏就不要修复”的东西(好吧,它有点坏了,但是有一个简单的方法,所以我使用它)。

应该没有区别,因为setHidden只是为hidden属性生成的setter。实际上,当您使用view.hidden=YES分配属性时,它应该在内部调用setHidden。你能粘贴一些代码吗,也许问题出在别处。您的视图是哪种类型的?没有太多代码可粘贴。视图实际上是
UIView
。我将在一分钟内粘贴有问题的两行。应该没有区别,因为setHidden只是为hidden属性生成的setter。实际上,当您使用view.hidden=YES分配属性时,它应该在内部调用setHidden。你能粘贴一些代码吗,也许问题出在别处。您的视图是哪种类型的?没有太多代码可粘贴。视图实际上是
UIView
。我将在一分钟内粘贴有问题的两行。这显然是错误的
hidden
是一个属性,它被声明为
@property(非原子,getter=ishdden)BOOL hidden
。这意味着所有者类有方法
setHidden:(BOOL)
ishiden
。如果该方法不存在,我将在XCode中得到一个错误或至少一个警告。相反,这一呼吁似乎被忽视了,这显然是错误的
hidden
是一个属性,它被声明为
@property(非原子,getter=ishdden)BOOL hidden
。这意味着所有者类有方法
setHidden:(BOOL)
ishiden
。如果该方法不存在,我将在XCode中得到一个错误或至少一个警告。相反,电话似乎被忽略了。这是如何解释问题的?我已经知道了。问题是调用
setHidden:NO
方法不会隐藏视图-调用后视图仍然显示;但是从所有文档来看,它应该是。如果问题被设置为隐藏:没有方法不会隐藏视图,因为它被设置为否。设置为隐藏:是会隐藏视图您肯定误解了我的问题:
[view setHidden:yes]
不会隐藏视图(尽管它应该),但是
view.hidden=YES
可以。这是如何解释问题的?我已经知道了。问题是调用
setHidden:NO
方法不会隐藏视图-调用后视图仍然显示;但是从所有文档来看,它应该是。如果问题被设置为隐藏:没有方法不会隐藏视图,因为它被设置为否。设置为隐藏:是将隐藏视图您肯定误解了我的问题:
[view setHidden:yes]
不隐藏视图(尽管它应该),但是
view.hidden=yes
会隐藏视图。