gpt4 book ai didi

iphone - 使用 CGContext 绘制线条

转载 作者:行者123 更新时间:2023-12-03 18:26:52 26 4
gpt4 key购买 nike

我想在 TableView 单元格中画线,以便可以将文本字段和开关放置在单个单元格中。我增加了单元格的高度。如何在单元格中画线?

我有 UIView 的子类,其中包含以下代码

 //Get the CGContext from this view
CGContextRef context = UIGraphicsGetCurrentContext();
//Set the stroke (pen) color
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//Set the width of the pen mark
CGContextSetLineWidth(context, 1.0);

// Draw a line
//Start at this point
CGContextMoveToPoint(context, 10.0, 30.0);

//Give instructions to the CGContext
//(move "pen" around the screen)
CGContextAddLineToPoint(context, 310.0, 30.0);


//Draw it
CGContextStrokePath(context);

然后我有一个具有分组表格样式的 tableViewController 。在 cellForRowAtIndexPath 中我有以下代码

//code to add textfield
DrawLineView *drawLine = [[DrawLineView alloc]init];
[cell addSubview:drawLine];
//code add switch

但它没有画任何线。我不能使用 2 个不同的电池。我必须请帮助我。这是我第一次在 iPhone 上处理图形。谢谢

最佳答案

如果您只想画一条线,那么最好使用 CAShapeLayer,向其传递一 strip 有线的路径,然后将其附加为单元格内容 View 的子图层。该表的性能应该比使用带有自定义绘制矩形的 View 更好。

通过 CALayer 和路径绘制线条的示例:

// You'll also need the QuartzCore framework added to the project
#import <QuartzCore/QuartzCore.h>

CAShapeLayer *lineShape = nil;
CGMutablePathRef linePath = nil;
linePath = CGPathCreateMutable();
lineShape = [CAShapeLayer layer];

lineShape.lineWidth = 4.0f;
lineShape.lineCap = kCALineCapRound;;
lineShape.strokeColor = [[UIColor blackColor] CGColor];

int x = 0; int y = 0;
int toX = 30; int toY = 40;
CGPathMoveToPoint(linePath, NULL, x, y);
CGPathAddLineToPoint(linePath, NULL, toX, toY);

lineShape.path = linePath;
CGPathRelease(linePath);
[self.layer addSublayer:lineShape];

关于iphone - 使用 CGContext 绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com