我希望有人能够指出正确的方向。我是iOS / Objective C的新手,但熟悉经典的ASP / PHP。

我正在尝试使用SQLite数据库中的数据动态生成CGRect(填充的椭圆)。我能够连接到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));
}


任何方向将不胜感激。提前致谢!

最佳答案

info.xCoordTextinfo.yCoordTextNSString,只需调用[info.xCoordText floatValue]将它们转换为浮点数即可。

即:

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

关于iphone - 从SQLite的NSArray绘制CGRects,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7680723/

10-12 01:15