欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

drawrect中怎么自定义uiview形状?小弟我的代码有些有关问题

更新时间: 2014-01-05 02:36:35 责任编辑: Author_N1

 

drawRect中如何自定义UIView形状??我的代码有些问题
我有一个类继承自  UIView,我想在drawRect中将view画成多边形。我已经画出了形状(红色部分),但我想把蓝色部分给裁剪掉,但我用了CGContexClip竟没有效果,请问我代码里哪里出问题啦???



 

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setBackgroundColor:[UIColor blueColor]];
    }
    return self;
}
- (void)drawRect:(CGRect)rect //画出边框
{
   CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGFloat arrowHeight = 15.0;
    CGFloat arrowWidth = 13.0;
    CGPoint arrowPoint = CGPointMake(rect.origin.x+rect.size.width/2.0f,rect.origin.y);
    CGMutablePathRef arrowPath = CGPathCreateMutable();
    CGPathMoveToPoint(arrowPath, NULL, arrowPoint.x, arrowPoint.y);
    CGPathAddLineToPoint(arrowPath, NULL, arrowPoint.x, arrowPoint.y+arrowHeight);
    CGPathAddLineToPoint(arrowPath, NULL, rect.origin.x, rect.origin.y+arrowHeight);
    CGPathAddLineToPoint(arrowPath, NULL, rect.origin.x, rect.origin.y+rect.size.height);
    CGPathAddLineToPoint(arrowPath, NULL, rect.origin.x+rect.size.width, rect.origin.y+rect.size.height);
    
    CGPathAddLineToPoint(arrowPath, NULL, rect.origin.x+rect.size.width, rect.origin.y+arrowHeight);
    CGPathAddLineToPoint(arrowPath, NULL, arrowPoint.x+arrowWidth, rect.origin.y+arrowHeight);
    CGPathCloseSubpath(arrowPath); //封口
    CGContextAddPath(ctx, arrowPath);
   
    [[UIColor redColor] setFill];
    CGContextDrawPath(ctx,kCGPathFill);
    CGContextClip(ctx);
    CGPathRelease(arrowPath);
}
多谢多谢!!
--参考方法--
- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self setBackgroundColor:[UIColor blueColor]];//此句修改成 [self setBackgroundColor:[UIColor clearColor]];
    }
    return self;
}
--参考方法--
设置成背景透明,画之前先调用清除cgcontext中的内容。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:36:35
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12036/
本文WWW.DOC100.NET DOC100.NET版权所有。