如何挂钩子视图的子视图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何挂钩子视图的子视图?相关的知识,希望对你有一定的参考价值。

父类A有子视图B,子视图有另一个子视图C,这是我要隐藏或应用代码到(C)

怎么样 ?

B是A的第三个子视图,C是B的第二个子视图。

他们是这样的:

  1. | A
  2. || B“UIView”
  3. || B“UIView”
  4. || B“UIView”
  5. |||ç
  6. ||| C(我想访问它)
  7. |||ç

我已经试过了

%hook A

-(void)layoutSubviews {

for (C *view in subviews[2].subviews)

%orig;

view.hidden = YES;

%end

但没有运气。

答案

我想到的一种方式就是做subviews[0].subviews[0]...直到你得到你想要的视图。其次,如果您不得不多次应用代码,我建议您为该视图分配一次标签,然后再执行[UIView viewWithTag:xx],它会更安全。

但在大多数情况下,至少在我的项目中,有一个快捷方式,就像一些委托或直接引用它。只需显示FlexFlipboard浏览器并搜索所有内容。

以上是关于如何挂钩子视图的子视图?的主要内容,如果未能解决你的问题,请参考以下文章

访问片段的子视图时出现空指针异常

仅在父片段中的操作栏中显示搜索视图

如何使列表视图出现在片段中?

如何从片段内的列表视图打开链接网址?

如何从活动中更改片段中视图的可见性

如何在kotlin的片段内显示网格视图?