在iphone sdk上绘制像Matrix Structure一样的点

我想在iphone sdk中像Matrix结构一样绘制点。

如果我想生成点列和行(如2×2,3×3,4×4)。

但我不知道这一代人。

我想要输出如下图像。

在此处输入图像描述

任何帮助例如代码或教程..!

你用这个代码……

- (void)drawRect:(CGRect)rect { CGContextRef contextRef = UIGraphicsGetCurrentContext(); CGContextSetRGBFillColor(contextRef, 0, 0, 255, 0.1); //CGContextSetRGBFillColor(contextRef, 0, 10, 200, 0.2); CGContextSetRGBStrokeColor(contextRef, 0, 0, 255, 0.5); // Draw a circle (filled) //CGContextFillEllipseInRect(contextRef, CGRectMake(100, 100, 25, 25)); // Draw a circle (border only) CGContextStrokeEllipseInRect(contextRef, CGRectMake(100, 100, 25, 25)); // Get the graphics context and clear it CGContextRef ctx = UIGraphicsGetCurrentContext(); CGContextClearRect(ctx, rect); // Draw a green solid circle CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(20, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(50, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(80, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(110, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(140, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(170, 50, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(20, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(50, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(80, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(110, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(140, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(170, 100, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(20, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(50, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(80, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(110, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(140, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(170, 150, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(20, 200, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(50, 200, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(80, 200, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(110, 200, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(140, 200, 8, 8)); CGContextSetRGBFillColor(ctx, 0, 255, 0, 1); CGContextFillEllipseInRect(ctx, CGRectMake(170, 200, 8, 8)); } 

你的输出显示如 在此处输入图像描述

一个简单的解决方案是:

 - (void)drawRect:(CGRect)rect { int n = 12; // row and column count int padding = 5; // distance beetween dots float radius = MIN((rect.size.width-(n+1)*padding)/(n*2), (rect.size.height-(n+1)*padding)/(n*2)); // radius depending on rect size CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]); // background color CGContextFillRect(context, rect); // setting background color CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]); // dot color for (int y = 0; y