翻译文档上的 bounds是指这个view在它本身坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小 区别主要在坐标系这一块。 很明显一个是本身为原点的坐标系,一个是以屏幕为原点的坐标系。绝对坐标。。。相对坐标。。。好比屏幕旋转的时候就要以相对来重绘。 frame 若是一个按钮,是在表格里,按钮的frame 的坐标也是相对的,并非相对屏幕,也就是说是相对坐标,不是绝对坐标 我也想知道任何一个uiview如何求得它在屏幕上的坐标。 view 的frame是view在它的super view 的位置与尺寸。 view 的bounds能够用来帮助它的subview来定位的 ,layoutSubviews。 Frame is in terms of superview's coordinate system 框架是从父视图的坐标系统 Bounds is in terms of local coordinate system 是在局部坐标系统框架
frame和bounds是UIView中的两个属性(property)。iview
frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)ui
bounds指的是:该view在自己坐标系统中 的位置和大小。(参照点是自己坐标系统)spa
-(CGRect)frame{.net
returnCGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);翻译
}orm
-(CGRect)bounds{开发
return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);文档
}get
很明显,bounds的原点是(0,0)点,而frame的原点倒是任意的。 frame 若是一个按钮,是在表格里,按钮的frame 的坐标也是相对的,并非相对屏幕,也就是说是相对坐标,不是绝对坐标。 frame 是相对坐标。bounds是绝对坐标。 Android的开发过程当中,绝对坐标,这样画出来的位置都是相对于屏幕的而不是相对于控件的 什么是绝对坐标值,相对坐标值? 绝对坐标是:X,Y 就是相对于坐标原点的。 例如(15,20)相对坐标是:@X ,Y 就是相对于参考点(能够是本身设定的一个点)。 例如(15,20)相对于参考点(1,1)的坐标,表示:@14,19 (15,20)相对于参考点(-1,-1)的坐标,表示:@16,21 bounds是指这个view在它本身坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小. 区别主要在坐标系这一块。 很明显一个是本身为原点的坐标系,一个是以屏幕为原点的坐标系。