drawRect方法的参数详解
2016-07-14 16:38
281 查看
创建自定义视图,在继承UIView之后,最关键的就是重写drawRect方法了。
这里暂不介绍具体怎样重写这个方法来实现想要的效果,重点介绍drawRect方法所带的CGRect类型的参数的作用。
drawRect接受的唯一参数就是"脏矩形",脏即需要更新的意思。这个参数给定的区域是self真正需要更新的区域。
顺便再说一下框架矩形(frame)和边界矩形(bounds)的区别。它们的类型都是CGRect,区别在于,frame定义了视图的大小和位置,这个位置是相对于父视图(superView)的;bounds则是视图相对于自身的坐标空间的位置和大小,这意味着origin的值一直都是(0.0,0.0)。这样一来,似乎边界矩形的存在没有任何意义,因为frame的size和bounds的size都是等同的,而且bounds的origin永远没有变化,那么我只需要知道frame值不就行了?其实不然,尽管边界矩形的size通常与框架矩形相同,但是在视图旋转的时候,框架矩形将改变大小和位置,而边界则保持不变。
这里暂不介绍具体怎样重写这个方法来实现想要的效果,重点介绍drawRect方法所带的CGRect类型的参数的作用。
drawRect接受的唯一参数就是"脏矩形",脏即需要更新的意思。这个参数给定的区域是self真正需要更新的区域。
顺便再说一下框架矩形(frame)和边界矩形(bounds)的区别。它们的类型都是CGRect,区别在于,frame定义了视图的大小和位置,这个位置是相对于父视图(superView)的;bounds则是视图相对于自身的坐标空间的位置和大小,这意味着origin的值一直都是(0.0,0.0)。这样一来,似乎边界矩形的存在没有任何意义,因为frame的size和bounds的size都是等同的,而且bounds的origin永远没有变化,那么我只需要知道frame值不就行了?其实不然,尽管边界矩形的size通常与框架矩形相同,但是在视图旋转的时候,框架矩形将改变大小和位置,而边界则保持不变。
相关文章推荐
- OC结构体(NSRange/CGPoint/CGSize/CGRect)
- CGFloat,CGPoint,CGSize,CGRect系列数据类型及方法
- ios 开发中跟绘图相关的CGFloat,CGPoint,CGSize,CGRect
- iOS开发--打印NSRange,CGRect,CGPoint等结构体
- IOS开发中的CGFloat、CGPoint、CGSize和CGRect
- 巧用中括号进行CGSize和CGRect的初始化
- Objective-C之Foundation中常见的结构体
- iOS CGRectGetMaxX/Y 使用
- CGPoint、CGSize和CGRect,CGPointMake,CGRectMake内联函数。
- CGGeometry
- ❀自我唠嗑-UI-UIView
- 自定义类型CGFloat、CGPoint、CGSize和CGRect
- 几种不常见的输出方法
- IOS_NSObject-CGRect类别 实现界面重绘
- ios 获取控件相对屏幕的位置
- ios 开发中跟绘图相关的CGFloat,CGPoint,CGSize,CGRect,CGRectZero
- iOS(CGGeometry)几何类方法总结
- iOS开发--打印NSRange,CGRect,CGPoint等结构体
- ios 结构体及坐标系统
- iOS 与绘图相关的CGFloat,CGPoint,CGSize,CGRect,CGRectZero概念