对autoresizing中间的六条线不是很理解,虽然知道他们的名字,但是还是不太理解背后的逻辑。自己探索了一下,没有找官方资料验证,旨在把自己的思考记录下来。其中一部分逻辑是我的猜测,但肯定对理解autoresizing有帮助。 首先启用autoresizing后,autoresizing将根据view的父view进行自动化布局调整(上下左右宽高),既然是调整那么就肯定有个参照,或者说依照,或者说默认情况下的操作。例如下图,我们将此情况称作“默认状态“,在此状态下,view对于父view的布局为:宽高不变,上下左右“自动“调整,此处自动即为按比例调整view.center的值。 举个例子,在4寸屏幕正中放置一个100x100pix的图片,那么到4.7,5.5屏幕中,这个图片仍保持100x100的大小,并且仍然居中屏幕。
理解图中的六条限制,或者说六个动作,不妨将六条线全部未激活的状态,即默认状态,看作autoresizing不对view进行强制调整。或许你说view.center的值已经变了啊,为什么还说默认状态下不对view的布局进行调整呢?我觉得默认状态下的调整是比较合理的,首先不拉伸view,不会产生变形或失真的情况;其次,手机app多数view都是以居中的形式存在的。所以将不改变view的宽高,按比例调整view.center应用场景最为广泛,便将这种情况作为默认情况。当然,以上是我的猜测,暂时没有查找证据。不过以默认情况下,认为autoresizing“不调整“view的布局,那么我们可以很轻松的理解autoresizing的逻辑了,即:激活哪一条“线“,则autoresizing将对该“线“进行调整。
例如,激活了四周间距,则四周间距将固定,不再按默认情况下缩放。激活了内部宽高,则宽高将被拉伸,不再按默认情况下固定。其他组合也可以用这个方式进行理解。
太晚了,后面有时间详细补充一些组合的情况。