2 xinyoulingxi1 tong xinyoulingxi1_tong 于 2013.01.05 09:43 提问

iphone中drawRect画图形

我的代码如下:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGFloat commentHeight = 0;


        CGSize commentSize = [self.highlightItem_.comment sizeWithFont:[UIFont fontWithName:kProximaNova size:18] constrainedToSize:CGSizeMake(rect.size.width, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
        commentHeight = commentSize.height + 50;

        CGContextSetRGBStrokeColor(context, 68/255.f, 68/255.f, 68/255.f, 1.0);
        CGContextSetRGBFillColor(context, 68/255.f, 68/255.f, 68/255.f, 1.0);
        CGContextSetLineJoin(context, kCGLineCapSquare);
        CGContextSetLineWidth(context, 1.0);

        CGMutablePathRef pathRef = CGPathCreateMutable();

        CGPathMoveToPoint(pathRef, NULL, 0, rect.size.height - commentHeight);
        CGPathAddLineToPoint(pathRef, NULL, 20, rect.size.height - commentHeight);
        CGPathAddLineToPoint(pathRef, NULL, 25, rect.size.height - commentHeight - 10);
        CGPathAddLineToPoint(pathRef, NULL, 30, rect.size.height - commentHeight);
        CGPathAddLineToPoint(pathRef, NULL, rect.size.width, rect.size.height - commentHeight);
        CGPathAddLineToPoint(pathRef, NULL, rect.size.width, rect.size.height);
        CGPathAddLineToPoint(pathRef, NULL, 0, rect.size.height);
        CGPathCloseSubpath(pathRef);

        CGContextAddPath(context, pathRef);
        //CGContextFillPath(context);
        CGContextDrawPath(context, kCGPathFill);


        CGPathRelease(pathRef);
}

但是没有画出预期的图片,不知道为什么?请高手指教,谢谢

1个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.13 22:18

可以学习一下,这个重绘的机制:
http://blog.csdn.net/fww330666557/article/details/8647608

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
通过CAShapeLayer 和 DrawRect 来画图形
通过CAShapeLayer 比较高级的方法 我自定义一个DefrenceShapeView - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.maskLayer = [CAShapeLayer layer]; _maskLaye
drawRect方法的参数详解
创建自定义视图,在继承UIView之后,最关键的就是重写drawRect方法了。 这里暂不介绍具体怎样重写这个方法来实现想要的效果,重点介绍drawRect方法所带的CGRect类型的参数的作用。 drawRect接受的唯一参数就是"脏矩形",脏即需要更新的意思。这个参数给定的区域是self真正需要更新的区域。 顺便再说一下框架矩形(frame)和边界矩形(bounds)的区别。它们的类型都
Android中的DrawRect()参数解析
官方文档中的定义:drawRect(float left, float top, float right, float bottom, Paint paint)Draw the specified Rect using the specified paint.下面我用一张图来解析各个参数。 X轴为手机顶部,y轴为手机左边,各个参数的意思就是到这两边的距离。
drawRect的解释
前两天在博客发了在例子 android Canvas类介绍   建议大家 点进去 看一看 不然下边没办法 继续啊。 我还是把这个例子的代码贴出来 大家一起看看吧。 Java代码   package com.yarin.android.Examples_05_04;    import android.content.Context;  import android.graphi
Android中drawRect参数
如下 canvas.drawRect(left, top, right, bottom, paint); canvas.drawRect(10, 10, 100, 100, paint); 第一个参数和第二个参数表示矩形左上顶点距离父容器左边和顶边的距离 第三个参数和第四个参数表示矩形右下顶点距离父容器左边和顶边的距离 矩形的宽=right-left 矩形的高=bottom-to
IOS7中UITableView中cell的使用 drawRect失效
在iOS7中,使用UITableView的时候,对于cell要注意:[cell addSubview:userTextField] ;  这种用法不能再用了,应该使用  [cell.contentView addSubview:userTextField] 的方式。  UITableViewCell的定制  以前可以直接继承UITableViewCell然后drawRect 可以实现
drawRect方法的调用
iPhone的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。 下面先说明一下绘图,比如,你想绘制一个方块,你需要写一个类来扩展UIView并在drawRect方法中填入如下代码: - (void)drawRect:
iOS开发-drawRect方法小技巧(超短)
获取画布: CGContextRef context = UIGraphicsGetCurrentContext();   设置颜色的三种方法: [[UIColor blueColor] setStroke]; CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); CGContextS
Qt中跟踪QPainter::drawRect的实现
void QPainter::drawRects(const QRectF *rects, int rectCount) { #ifdef QT_DEBUG_DRAW     if (qt_show_painter_debug_output)         printf("QPainter::drawRects(), count=%d\n", rectCount); #endif
Android drawRect参数
Android drawRect参数,left和top是矩形的左上角的坐标,right和bottom是矩形的右下角的坐标,而paint则是画笔对象。而不是矩形的上下左右宽度等错误理解。