如何使用 FMDB 将 SQLite 中的数据显示到标签,如下所示:
我想以这种格式显示任何输出供用户查看。没有互动。仅显示select
查询。
您可以通过使用UITableView和自定义 UITableViewCells来完成上述操作。
您可以维护一个数组,该数组将充当视图控制器的数据源。
考虑到您希望拥有与共享相同的布局(每行有四个标签),您将从数据库中获取数据。
由于从数据库中获取的数据可能会不断增加,UITableView 是显示长数据列表时的最佳选择,因为内存管理和单元格创建是自动处理的。
如果您打算只使用标签,那么事情对您来说可能会变得很棘手。因为如果您使用查询获取的行数select
过多,那么您最终将创建大量视图,这将导致内存问题。
而且,如果您不希望用户与任何行进行交互,请实现以下方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
这是创建自定义单元格的链接:
http://www.appcoda.com/customize-table-view-cells-for-uitableview/
这是使用表格视图的链接:
http://www.appcoda.com/ios-programming-tutorial-create-a-simple-table-view-app/
祝你好运!!
如果您想添加UILabel
对象,只需遍历您的结果集,将标签添加到您的视图。就像是:
NSInteger rowNum = 0;
NSArray *columnWidths = @[@(50), @(120), @(75), @(75)];
CGFloat rowHeight = 24.0;
FMResultSet *rs = [db executeQuery:sql];
while ([rs next])
{
CGFloat x = 0.0;
NSInteger colNum = 0;
for (NSNumber *columnWidth in columnWidths)
{
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x,
rowHeight * rowNum,
[columnWidth floatValue],
rowHeight)];
label.textAlignment = NSTextAlignmentCenter;
label.layer.borderColor = [UIColor blackColor].CGColor;
label.layer.borderWidth = 1.0;
label.text = rs[colNum++];
[self.view addSubview:label];
x += [columnWidth floatValue];
}
rowNum++;
}
[rs close];
我刚刚输入了它,所以我确定那里有错别字,但希望它足以让您了解它的外观。如果屏幕上放不下太多行,您可以在视图中添加一个滚动视图,然后将标签作为子视图添加到该视图中。
我也认为 tableview 是一个很好的方法。或者动态构建您在UIWebView
. 这里有很多选择。这在一定程度上取决于您的最终目标是什么,数据的性质,您想要什么样的用户交互。