【问题标题】:How To Create Custom Table Cells With That Pulls Data From An SQLite Database如何使用从 SQLite 数据库中提取数据来创建自定义表格单元格
【发布时间】:2013-01-09 06:35:57
【问题描述】:
我已经在互联网上搜索了很长时间,试图弄清楚这一点。我想创建一个社交网络应用程序,它允许我拥有从 sqlite 数据库中提取数据的自定义表格单元格。我希望将用户个人资料图片添加到表格单元格的左侧,并将他们的用户名添加到单元格的右侧。我知道我需要一个从 sqlite 数据库中提取 BLOB 图像的图像视图,并且我知道我需要一个标签来显示用户名。我还希望它像 facebook 和 twitter 一样实时更新。我已经创建了我的 sqlite 数据库并设计了用户界面。我只是不知道从那里去哪里。任何帮助将不胜感激!
【问题讨论】:
标签:
iphone
objective-c
xcode
ios5
tableview
【解决方案1】:
- 您必须在显示
UITableView 之前触发查询以获取数据。
- 此查询的结果将决定您的
UITableView 中的行数
- 每当您获得更新或想要更改
UITableView 的内容时,您只需再次触发查询即可。从您的 SQLite 获取数据。并且,重新加载您的 tableview。
【解决方案2】:
1 将数据库中的数据拉到内存中。
我使用 Core Data 来执行此操作,here 是一个很好的起点。
您可以从 sqlite 中fetch records 并将它们更改为对象,以便您可以操作它们。
2 在你的视图上布局一个 tableView
请参阅here 了解如何添加 tableView。
您的关键方法是tableView:cellForRowAtIndexPath:。
您将在其中自定义您的单元格。
要知道 UITableViewDataSource 和 UITableViewDelegate 对于使用 UITableView 非常重要。
3 自定义你自己的 UITableViewCell
您可以创建 UITableViewCell 的子类,可能是 MyTableViewCell,以显示用户的头像和名称。
或者你可以直接使用默认的 UITableViewCell,它有一个 imageView 和一个 label,满足你的需要。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"TableViewCellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (nil == cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier] autorelease];
}
// Do something here
cell.imageView.image = user.avatar;
cell.detailTextLabel.text = user.name;
return cell;
}
【解决方案3】:
您可以创建一个方法,该方法可能包含获取数据和重新加载表的代码。然后创建 NSTime 触发器并调用方法