网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

IOS绘图的奇怪现象

 最近应用需要自绘控件  但是在绘制view的时候遇到一个现象。这个现象也许能让大家绘制控件的时候调bug少一些时间。

目前成都创新互联公司已为千余家的企业提供了网站建设、域名、网页空间、网站托管维护、企业网站设计、农安网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

如我有一个UIView,实现如下

- (void)drawRect:(CGRect)rect

{

    CGContextRef context=UIGraphicsGetCurrentContext();

   CGContextSetStrokeColorWithColor(context, [UIColoryellowColor].CGColor);

     CGContextMoveToPoint(context,X1,Y1);

   CGContextAddLineToPoint(context,X2,Y2);

   CGContextStrokePath(context);

}

 

然后我把这个绘制的UIview给一个ViewController。代码如下

- (void)viewDidLoad

{

    [superviewDidLoad];

    x1=20;

    y1=10;

    x2=120;

    y2=30;

      TX *t=[[TX alloc] init];

    

  // [t setBackgroundColor:[UIColor clearColor]];

    [tsetBackgroundColor:nil];

    self.view=t;

    UIButton *bt=[[UIButtonalloc]initWithFrame:CGRectMake(0,0,100,35)];

    bt.backgroundColor=[UIColoryellowColor];

    [btaddTarget:selfaction:@selector(btAction:)forControlEvents:UIControlEventTouchUpInside];

     [self.view addSubview:bt];

}

-(void)btAction:(id)sender{

    x1+=20;

    y1+=20;

    x2+=30;

    y2+=30;

    TX *t=(TX *)[self view];

    t->X1=x1;

    t->Y1=y1;

    t->X2=x2;

    t->Y2=y2;

    

    [tsetNeedsDisplay];

}

注意上面加红的两行代码。当[t setBackgroundColor:nil];或者不设置BackgroundColor时默认也是nil的。然后不停的按Button。效果如下

 

IOS 绘图的奇怪现象

上面的图显示 重新绘制的时候没有清空前面绘制的。

但是当[t setBackgroundColor:[UIColor clearColor]];后不停按Button效果如下

 

IOS 绘图的奇怪现象

如上图 重绘的时候会清除前面的绘图。所以有时候不一定要自己手动清空去  可能就是这点没注意。

(希望大神能解释这一现象的原因)。

 


本文标题:IOS绘图的奇怪现象
标题网址:http://bjjierui.cn/article/jsphos.html

其他资讯