有时候开发了很多时间,但是那些细节的东西缺可能没有关注到。


UIView的几个属性

  1. frame(边框)
  2. bounds(边界)
  3. center(中心)

frame是一个CGRect结构体类型的属性。它指的是该view相对于父view的坐标系统的位置和中心。

bounds是指的该view在本身坐标系统中的位置和大小。

区别就是参照的坐标系统,frame是父view,bounds是自身。

 

看下编程指南里的示例图:

左侧的frame决定了这张图片在灰色的父view中的位置和大小。

右侧的bounds决定了要将自身的哪一部分显示出来,默认是原点是(0,0)。

 

如果bounds改变,而frame不变,那么它显示在父视图的部分将改变,而位置不变。

效果如下:

 

frame与bounds之间的关系如下:

1.当设置frame的时候,bounds的大小会被设置成与frame大小一样。

2.当设置bounds的大小的时候,frame的大小也会随之改变。

不过更改bounds的原点可以不会对frame影响。只是显示在父视图的内容就不一样了。

 

用法:

  • 如果使用一个view,那么需要用到frame:比如创建一个view,确定这个view在父视图的位置
  • 如果实现一个view,那么使用bounds:比如捕捉一个事件,绘制一个view

 



ContentMode属性

UIViewContentModeScaleToFill 缩放以填充

UIViewContentModeScaleAspectFit 缩放以显示全部,比例不变

UIViewContentModeScaleAspectFill 缩放显示,填满,比例不变