CGRect中的数组值

时间:2014-02-05 18:49:01

标签: objective-c nsarray cgrect

我有一个坐标数组,x和y喜欢

  

NSArray * objectCoords = [NSArray arrayWithObjects:                                @ “{{116371},{85,42}}”,                                @ “{{173,43},{85,42}}”,                                @ “{{145200},{85,42}}”,

我正在尝试使用drawRect.like绘制一个圆圈:

-(void)drawRect:(CGRect)rect
{

   // [super drawRect:rect];  144,179,130
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 10.0);
    CGContextSetStrokeColorWithColor(context,[UIColor grayColor].CGColor);



    int x=10;
    int y=10;
    CGRect rectangle0;
    for (int i=0; i<=10; i++) {
     rectangle0 = CGRectMake(x,y,10,10);//just to draw
        x=x+20;
        y=y+23;
        NSLog(@"x: %d  and y: %d", x,y);
         CGContextAddEllipseInRect(context, rectangle0);
    }

}

我不确定,如何将这些数组坐标放在CGRect中以在这些特定坐标处绘制圆圈。

请指导。

由于

2 个答案:

答案 0 :(得分:4)

您可以使用CGRectFromString(string)从字符串表示创建CGRect对象。这将采用{{x,y},{w, h}}格式的字符串(谢天谢地,你的字符串是!)

例如:

NSArray *objectCoords = [NSArray arrayWithObjects: @"{{116,371},{85,42}}", @"{{173,43},{85,42}}", @"{{145,200},{85,42}}",

for (NSString* objectCoord in objectCoords) {
    CGRect coord = CGRectFromString(objectCoord);
    // Draw using your coord
}

相反,如果你有一个CGRect,你可以通过NSStringFromCGRect(rect)获得一个字符串表示

答案 1 :(得分:2)

使用CGRectFromString将此类NSString转换为CGRect s