Ios 创建自定义视图并初始化它时与框架的界限
我在理解差异以及何时使用什么方面遇到了一些困难 我知道教科书的定义。关于这个话题,我也搜索了很多。这里的一些答案在某种程度上是有帮助的,但我觉得我仍然不能正确理解这一点 假设我有一个aCustomView.m,当我在该视图中放置UI元素时,我使用边界,这是有意义的,因为它在自己的坐标系中,但是,当我在视图控制器中使用Ios 创建自定义视图并初始化它时与框架的界限,ios,objective-c,view,frame,bounds,Ios,Objective C,View,Frame,Bounds,我在理解差异以及何时使用什么方面遇到了一些困难 我知道教科书的定义。关于这个话题,我也搜索了很多。这里的一些答案在某种程度上是有帮助的,但我觉得我仍然不能正确理解这一点 假设我有一个aCustomView.m,当我在该视图中放置UI元素时,我使用边界,这是有意义的,因为它在自己的坐标系中,但是,当我在视图控制器中使用initWithFrame:初始化视图时,我应该使用self.view.frame还是self.view.bounds?两者都会起作用,但结果不同 我真的很想了解这一点,所以如果有任
initWithFrame:
初始化视图时,我应该使用self.view.frame
还是self.view.bounds
?两者都会起作用,但结果不同
我真的很想了解这一点,所以如果有任何帮助,我将不胜感激。UIView的边界是矩形,表示为相对于自身坐标系(0,0)的位置(x,y)和大小(宽度,高度) UIView的框架是矩形,表示为相对于包含在其中的superview的位置(x,y)和大小(宽度,高度)
因此,差异只是一个表示问题。只想补充一点,如果您使用self.view.frame,它通常会起作用,因为该帧的原点恰好为0,0。然而,作为一个很好的经验法则。如果您要添加子视图并希望它填充父视图,请始终将框架设置为其父视图的边界。感谢@Logan的附加注释。当您想要填充父视图时,通常使用父视图的边界来初始化子视图。