iOS 父视图无坐标,子视图有坐标可正常展示

2018-12-30  本文已影响14人  翀鹰精灵

✨ 今天在写一个数据空白页的时候,出现一个诡异的现象,项目中有一个同事封装好的数据空白展示页面,出于程序员懒惰的心里,我直接复制同事写好的代码到自己的类中,加以修正,正常显示,没有问题,但此时,我设置一个这个空白页面的背景色,却发现怎么都没有显示。纠结开始于此。。。

✨✨✨ 为什么背景色不显示???

001.png
步骤排查:
1.查看层级关系,如图002所示,发现没有该图层。
002.png

正常选中对象以后,就会出现对应的图层的,如图003所示:


003.png
2.打印该空白页面的坐标,发现坐标是frame = (0 0; 0 0),如图004所示。
004.png

此时,小伙伴们是否明白了呢,就是说,假如我的父视图是A,如果A没有坐标,子视图此时参照的不是A的坐标系,而是系统的坐标系,就用默认的位置了,所以就可以正常展示。

but~,虽然这里可以正常展示,但是该做法是危险的,会存在以下问题:

1.如果改视图上有交互,如按钮的点击事件,此时,该交互已经被屏蔽了,不可交互。

2.此时子视图里面的控件,实际上画到外边去了,如果此时设置sectionView.clipsToBounds = YES;该视图将不会再显示了。因为该属性是吧超出父视图的控件裁剪了,如图005所示:

005.png

所以,小伙伴们,如果你们也碰到过按钮没有点击效果,除了要检查交互性外,还需看下是否是超出了父视图范围,超出父视图范围也是不可点击的哦~

上一篇下一篇

猜你喜欢

热点阅读