次のように FMDB を使用して SQLite からラベルにデータを表示する方法:
ユーザーが見られるように、この形式で出力を表示したいと思います。相互作用なし。select
クエリの表示のみ。
オブジェクトを追加したい場合は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];
入力したばかりなので、間違いがあると思いますが、それがどのように見えるかを理解するのに十分であることを願っています. 行が多すぎて画面に収まらない場合は、スクロールビューをビューに追加してから、ラベルをサブビューとして追加します。
また、テーブルビューは素晴らしいアプローチだと思います。または、に表示する HTML 文字列を動的に作成しますUIWebView
。ここにはたくさんのオプションがあります。それは、最終的な目標が何であるか、データの性質、どのような種類のユーザー インタラクションが必要かによって少し異なります。
UITableViewとカスタム UITableViewCellsを使用して上記を実現できます。
また、View Controller のデータ ソースとして機能する配列を維持できます。
共有したものと同じレイアウト (行ごとに 4 つのラベルがある) が必要であることを考慮して、データベースからデータを取得します。
データベースからフェッチされるデータは増加し続ける可能性があるため、メモリ管理とセルの作成が自動的に処理されるため、データの長いリストを表示する場合は 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/
幸運を!!