View的坐标系有两个:一个基于父视图的frame,一个基于自身的bounds;
frame的x和y决定了自身在父视图中的位置
bounds的x和y决定了子视图在自身的起始位置,所以bounds的x和y的值不总是为0的。
这里设父视图A----->子视图B
通常情况下,A视图初始化后的bounds的x和y为0;
但当初始化时候设置A的width或height为负值的时候,这时候A的bounds的x或y也就是负值。然后当A的frame改变时候,A的bounds的x和y并不会改变。
这时候对于B视图的frame的x和y坐标就会看上去和设置的不一样。
实际上是没有错的,只是B视图基于的是A视图的bounds坐标系。
所以将A视图的坐标系归于原点就看上去正常了!
网友评论