frame: 該view在父view坐標系統中的位置和大小。(參照點是,父親的坐標系統)
bounds:該view在本地坐標系統中的位置和大小。(參照點是,本地坐標系統)
center:該view的中心點在父view坐標系統中的位置和大小。(參照電是,父親的坐標系統)
搞iOS開發的童鞋基本都會用過UIView,那他的bounds和frame兩個屬性也不會陌生,那這兩個有什么實質性的區別呢?
先看到下面的代碼你肯定就明白了一些:
-(CGRect)frame{
return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
}
-(CGRect)bounds{
return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
}
很明顯,bounds的原點是(0,0)點,而frame的原點卻是任意的。
}
-(CGRect)bounds{
}
很明顯,bounds的原點是(0,0)點,而frame的原點卻是任意的。
再來看張圖,你就會更清楚了。
基本概念:
frame: 該view在父view坐標系統中的位置和大小。(參照點是,父親的坐標系統)
bounds:該view在本地坐標系統中的位置和大小。(參照點是,本地坐標系統)
center:該view的中心點在父view坐標系統中的位置和大小。(參照電是,父親的坐標系統)
實際上只有bounds和center兩個屬性。frame是為了方便直觀多加的屬性。所以修改了一個可能會影響到其他屬性。