uikit——UIView——drawing
来源:互联网 发布:清朗网络海报 编辑:程序博客网 时间:2024/06/07 03:26
draw
- (void)drawRect:(CGRect)rect;- (void)setNeedsDisplay;- (void)setNeedsDisplayInRect:(CGRect)rect;@property(nonatomic) BOOL clipsToBounds; // When YES, content and subviews are clipped to the bounds of the view. Default is NO.
注意:rect参考自身坐标系
演示
@interface FBView : UIView@end@implementation FBView- (void)drawRect:(CGRect)rect{ NSLog(@"drawRect rect = %@", NSStringFromCGRect(rect));}@end
- (void)viewDidLoad{ [super viewDidLoad]; NSLog(@"viewDidLoad"); fbView = [[FBView alloc] initWithFrame:CGRectMake(10, 20, 100, 200)]; fbView.contentMode = UIViewContentModeRedraw; [self.view addSubview:fbView];}- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; NSLog(@"viewWillAppear");}- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; NSLog(@"viewDidAppear");}
output:
viewDidLoadviewWillAppeardrawRect rect = {{0, 0}, {100, 200}}viewDidAppear
first display(draw)位于viewViewAppear和viewDidAppear之间
draw不要直接调用,下列情况会发生draw调用:
- first display
- 调用setNeedsDisplay或setNeedsDisplayInRect
- contentMode为UIViewContentModeRedraw,bounds change
分析:
UIView有一个draw flag和draw rect,默认draw flag为YES,draw rect为bounds,调用draw以后,draw flag设为NO,setNeedDisplay和setNeedsDisplayInRect就是设置draw flag和draw rect的(setNeedDisplay设置draw rect为bounds),当contentMode为UIViewContentModeRedraw,bounds change时,本质就是调用setNeedDisplay
0 0
- uikit——UIView——drawing
- uikit——UIView——layout
- uikit——UIView——autoresizing
- uikit——UIView——content
- uikit——UIView——tag
- uikit——UIView——event
- uikit——UIView——appearance
- uikit——UIView——resizing
- uikit——UIView——bounds frame
- uikit——UIView——view hierarchy
- uikit——UIView——tintColor tintAdjustmentMode
- uikit——UIView——layout定制
- uikit——Auto Layout——UIView——constraint
- uikit——Auto Layout——UIView——anchor
- uikit——Auto Layout——UIView——layout guide
- uikit——Auto Layout——UIView——margin
- uikit——UIView——convert between view coordinate system
- IOS开发基础—关于uikit框架里面uiview类的一些知识点
- Java对象的强引用,软引用,弱引用和虚引用
- 图书购买系统之商品分类分页--根据主页面传来的值分类显示商品并实现动态分页功能
- wordpress 数据库搬家
- android中的fragment
- DLR、ASTER GDEM、SRTM3、GMTED2010等5种全球高程数据对比
- uikit——UIView——drawing
- 第四次作业-杨辉三角
- js控制li的样式,多应用于网站栏目导航默选项
- hdu1013Digital Roots
- 一个新手对javaWeb的看法
- Fast RCNN算法详解
- Gradle安装笔记
- BZOJ 2326: [HNOI2011]数学作业
- core文件被截断问题的解决办法