有时候开发了很多时间,但是那些细节的东西缺可能没有关注到。
UIView的几个属性
- frame(边框)
- bounds(边界)
- 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 缩放显示,填满,比例不变