一说到监听.大家可能想到的是addObserve:
没错,我想讲的就是observer,但是可能和大家想的有些许不同.
用习惯了Masonry.其实也就是苹果的AutoLayout系统.对于一些东西就渐渐的忽略了.比如当你设置center.equto比如self.view的时候.如果转屏.frame会不会改变呢.(假定大小固定的情况下).
大家也许觉得x.y可能变化了,那么frame肯定改变了.
其实对于addObserver来说不是这么回事.不信的话你可以试试,完全收不到上面提到的这种情况下的观察.
对于这种情况,有些人提出了,添加一个Timer来
监听
UI控件的frame的改变.其实这能完成需求,但是我不推荐这么做.
正确的姿势
据我猜想.设置center虽说会影响frame的x.y,但是在setCenter的内部可能并不是直接self.frame.xx = xx;
有可能是使用KVC给center的x赋值,也有可能是frame取值的时候才会看到
x的改变.
对于我们来说,frame的变化有可能是bounds改变.frame改变.center改变.那么我们监听的时候就需要加三遍,才能获取完整的监听