我希望有人能够指出正确的方向。我是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.xCoordText
和info.yCoordText
是NSString
,只需调用[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/