以编程方式将 XIB 中的 UIView 设置为隐藏

programmatically set UIView in XIB to hidden

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

我已经将 xib 链接到它的 .h 文件,我可以通过我的另一个 class.

访问视图

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 设置标签并通过其标签访问视图,但它仍然没有隐藏。

问题出在这里:

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

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