2014-02-05 4 views
0

У меня есть массив координат х и у, какмассив значений в CGRect

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, чтобы нарисовать круг в этих конкретных координатах.

Просим руководствоваться.

Благодаря

+0

Действительно ли это массив строк? Вы пытались выполнить повтор по содержимому массива? – Wain

+1

Почему вы помещаете строковое представление прямоугольников в вашем массиве? – rmaddy

+0

Thats ответ с сервера :) – iscavengers

ответ

4

Вы можете создать объект CGRect из представления строки с использованием CGRectFromString(string). Это берет строки в формате {{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)

+3

Еще один хороший способ сериализации - с NSValue. '+ [NSValue valueWithCGRect:]' и '- [NSValue CGRectValue]'. –

+0

Очень хорошая точка. Лично любое внутреннее хранилище CGR, которое должно быть объектом, должно быть «NSValue». Если вам нужно связаться с внешней службой (по какой-либо причине, например, веб-службой JSON), здесь хорошо работает строковое представление. – WDUK

+0

Да, я использую JSON для получения координат. Это работало как charm.thanks WDUK. – iscavengers

2

использования CGRectFromString для преобразования таких NSString s в CGRect s

Смежные вопросы