【问题标题】:programmatically set UIView in XIB to hidden以编程方式将 XIB 中的 UIView 设置为隐藏
【发布时间】:2016-03-31 02:58:03
【问题描述】:

我有一个XIB 用于两个不同的视图,因为这些视图非常相似。在XIB 中,我有一个小视图,它基本上是一条用作分隔符的垂直线。在一个视图中我想要分隔符,而在另一个视图中我不想要。

我已将 xib 链接到它的 .h 文件,我可以通过我的其他类访问视图。

Cell.xib - 具有我正在谈论的视图分隔符,即 UIView*cellSeparator
HomeTableVC.h 这是 xib 链接的位置也。所有 xib 元素都链接到这个 .h 文件。

ChatTable.h/ChatTable.m -

//ViewDidLoad
HomeTableVC* homeTable = [[HomeTableVC alloc] init];
homeTable.cellSeparator.hidden = YES;

一切都编译并运行良好,但 cellSeparator 没有被隐藏。

我试过把它放在loadViewviewDidLoad 中,我试过在mainThread 中调用它,但我似乎无法以编程方式隐藏这个 UIView。

我曾考虑过只制作 XIB,但如果我可以隐藏这个 UIView 而没有几乎重复的 xib,那似乎很愚蠢。

感谢任何帮助。谢谢。

编辑:我尝试的另一种方法是为 cellSeparator 设置标签并通过其标签访问视图,但它仍然没有隐藏。

【问题讨论】:

  • 你检查过文件和IBoutlet吗?
  • @ismail 文件所有者可以是访问该 xib 的唯一文件吗?
  • 首先检查 IBOutlet 连接
  • 您是否将该视图与 .h 文件中的某些属性和 IBOutlet 相关联
  • 能不能把Cell.xib或者HomeTableVC的.h文件和xib的截图显示一下会更好

标签: ios objective-c uiview xib


【解决方案1】:

问题出在这里:

HomeTableVC* homeTable = [[HomeTableVC alloc] init];
homeTable.cellSeparator.hidden = YES;

实际上,您并没有隐藏IBoutlet 的分隔符(它将XIB 组件连接到类文件),而是创建了HomeTableVC 的新实例,该实例无权访问XIB 组件。

【讨论】:

  • 只做没有做的事,从出口隐藏组件。问题就会迎刃而解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2016-07-31
  • 2012-02-02
  • 2011-12-03
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
相关资源
最近更新 更多