Ios 使用FMDB显示从sqlite到标签的数据

Ios 使用FMDB显示从sqlite到标签的数据,ios,sqlite,ios5,ios6,fmdb,Ios,Sqlite,Ios5,Ios6,Fmdb,如何使用FMDB将数据从SQLite显示到标签,如下所示: 我想以这种格式显示任何输出,供用户查看。没有互动。仅为选择查询显示。您可以使用UITableView和自定义UITableViewCells来完成上述操作 您可以维护一个数组,该数组将作为视图控制器的数据源 考虑到您希望拥有与共享相同的布局(每行有四个标签),您将从数据库获取数据 由于从数据库获取的数据可能会不断增加,因此当自动处理内存管理和单元创建时,当显示长数据列表时,UITableView是最佳选择 如果你计划只有标签,那么事情

如何使用FMDB将数据从SQLite显示到标签,如下所示:


我想以这种格式显示任何输出,供用户查看。没有互动。仅为
选择查询显示。

您可以使用UITableView和自定义UITableViewCells来完成上述操作

您可以维护一个数组,该数组将作为视图控制器的数据源

考虑到您希望拥有与共享相同的布局(每行有四个标签),您将从数据库获取数据

由于从数据库获取的数据可能会不断增加,因此当自动处理内存管理和单元创建时,当显示长数据列表时,UITableView是最佳选择

如果你计划只有标签,那么事情会变得棘手。因为如果使用
select
query获取的行数太多,那么最终将创建大量视图,这将导致内存问题

并且,如果不希望用户与任何行交互,则实现以下方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
以下是用于创建自定义单元格的链接:

以下是使用表视图的链接:


祝你好运

如果要添加
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是一种很好的方法。或者动态构建一个HTML字符串,显示在
UIWebView
中。这里有很多选择。这有点取决于您的最终目标是什么,数据的性质,您想要什么类型的用户交互。

我不想只实现tableview标签,有可能吗?你能给我你发布的建议的链接吗?谢谢Ravi。谢谢Ravi。你能提供满足上述要求的源代码的链接吗?这将是一个很大的帮助。因为我不知道如何继续满足上述要求。再次感谢。不客气,我希望这会有所帮助。如果您不打算实现表视图,请务必考虑内存问题。谢谢您,先生,我想Rob给出了最接近的答案。再次感谢,祝您度过愉快的一天。谢谢您,先生。由于您正在对单元格宽度进行硬编码,如果文本长度大于单元格宽度,则应执行什么操作。例如:是否仍存在列宽可以根据插入的数据自动调整大小的情况。再次感谢您查看列宽。@JacobWood,再次提供大量选项,但是,通过编程方式添加
UILabel
控件会有点麻烦。也许在结果集中迭代一次,调用
NSString
方法,并通过编程确定
columnWidths
数组中所有列的最大宽度。或者,如果您构建了HTML表,那么列宽将由您负责。与数据没有交互,只是以上图中提到的格式进行简单显示。这是一个好主意。我将实现上面的代码并进行测试。再次感谢您抽出时间。祝您度过愉快的一天。