NSArray из SQLite для рисования CGRects - PullRequest
1 голос
/ 07 октября 2011

Я надеюсь, что кто-то сможет указать мне правильное направление. Я новичок в iOS / Objective C, но знаком с классическим ASP / PHP.

Я пытаюсь динамически генерировать CGRects (заполненные эллипсы), используя данные из базы данных SQLite. Я могу подключиться к базе данных SQLite и получить массив, так что это работает. Вы увидите, что моя цель CGRect успешно записывается в NSLog вместе с рисованием двух точек вручную.

Мне просто нужно немного подтолкнуть в правильном направлении, насколько это лучший способ для размещения элементов из «набора записей» в строке CGRect, способом, аналогичным тому, как я отправляю его в NSLog.

Мой рабочий код CGRect:

- (void)drawRect:(CGRect)rect {

CGContextRef context = UIGraphicsGetCurrentContext();

// Set dot alpha transparency
CGContextSetAlpha(context, 0.70);

// And draw with a blue fill color
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);

// Fill rect convenience equivalent to AddEllipseInRect(); FillPath();
int ellipseDiameter = 35.0;
int drawOffset = ellipseDiameter / 2;

//NSArray into NSLog showing how CGRect should be formatted from SQLite data
NSArray *locationInfos = [LocationDatabase database].locationInfos;
for (LocationInfo *info in locationInfos) {
    NSLog(@"CGContextFillEllipseInRect(context, CGRectMake(%@ - drawOffset, %@ - drawOffset, ellipseDiameter,ellipseDiameter))", info.xCoordText, info.yCoordText);
}

//drawing dot 1 
CGContextFillEllipseInRect(context, CGRectMake(125.0 - drawOffset, 108.0 - drawOffset, ellipseDiameter, ellipseDiameter));

//drawing dot 2
CGContextFillEllipseInRect(context, CGRectMake(132.0 - drawOffset, 146.0 - drawOffset, ellipseDiameter, ellipseDiameter));    
}

Любое направление будет по-настоящему оценено. Заранее спасибо!

1 Ответ

1 голос
/ 07 октября 2011

info.xCoordText и info.yCoordText являются NSString, просто позвоните [info.xCoordText floatValue], чтобы превратить их в числа с плавающей точкой.

т.е.:

CGContextFillEllipseInRect(context, CGRectMake(info.xCoordText.floatValue - drawOffset, info.yCoordText.floatValue - drawOffset, ellipseDiameter,ellipseDiameter));
...