1.翻译文档上的bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小区别主要在坐标系这一块。很明显一个是自己为原点的坐标系,一个是以屏幕为原点的坐标系。(Bounds)就是绝对坐标,(Frame)就是相对坐标。比如屏幕旋转的时候就要以相对来重绘。开发过程中,控件是绝对坐标,这样画出来的位置都是相对于屏幕的而不是相对于控件的。 那什么是绝对坐标值,相对坐标值?绝对坐标是:X,Y 就是相对于坐标原点的。相对坐标是:@X,Y 就是相对于参考点(可以是自己设定的一个点)。例如(15,20)相对于参考点(1,1)的坐标,表示:@(14,19 ) (15,20)相对于参考点(-1,-1)的坐标,表示:@(16,21) //其中(15,20)是相对于屏幕原点的坐标
2.frame和bounds是UIView中的两个属性(property)。
-(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);
}