- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些数据库,我正在生成类似这样的数据。
首先从数据库中获取categoryid和categoryName。表的sectiontitle是categoryName。
这是一些示例代码
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return categoryNamesList.count;
}
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [categoryNamesList objectAtIndex:section];
}
我想根据类别 ID 生成抽认卡 ID 和抽认卡名称。 CategoryID 存储在数据库中,如 1,2,3。
所以我在查询中传递categoryid:
select flashCardId,flashCardName from flashCardInfo where categoryId=(parameter)
在 flashcardid 中,我得到 1,2,3,在 flashcards 名称数组中,我第一次得到 flashcard1,flashcard2,flashcard3,现在我想在单元格上生成文本,如第 1 部分的第一个类别名称,然后在第 1 部分上生成相关的抽认卡名称然后是第二部分第二个类别名称上的行以及行上的相关抽认卡名称。在哪里增加类别 id 以便我获得下一个名称和 id 以及如何在单元格上设置文本
现在我该如何生成它
这是代码;它位于 indexviewcontroller.m
文件中。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return categoryNamesList.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return flashCardsNamesList.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
if(categoryID<listOfCategoryId.count)
{
for(int i=0;i<flashCardsNamesList.count;i++)
{
[cell.FlashCardsNames setText:[flashCardsNamesList objectAtIndex:i]];
}
categoryID++;
[self getFlashCard:categoryID];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[indexTableView deselectRowAtIndexPath:indexPath animated:YES];
for(int i=0;i<flashCardsId.count;i++)
{
questionViewControllerObj = [[flashCardQuestionViewController alloc] initWithNibName:@"FlashCardQuestionView" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:questionViewControllerObj animated:YES];
questionViewControllerObj.flashcardid = [[flashCardsId objectAtIndex:i] intValue];
questionViewControllerObj.categoryid = [[listOfCategoryId objectAtIndex:indexPath.section]intValue];
}
}
/*
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
}
if (editingStyle == UITableViewCellEditingStyleInsert) {
}
}
*/
/*
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
*/
/*
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
}
*/
/*
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
*/
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [categoryNamesList objectAtIndex:section];
}
# pragma mark -
# pragma mark viewDidLoad
- (void)viewDidLoad {
[super viewDidLoad];
[self getIntialData];
self.navigationItem.title = @"Index";
indexTableView.backgroundColor = [UIColor lightGrayColor];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
- (void)viewWillDisappear:(BOOL)animated {
}
- (void)viewDidDisappear:(BOOL)animated {
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark -
#pragma mark Database Methods
-(void)getIntialData
{
[self getcategory];
[self getFlashCard:categoryID];
}
//getting categoryid,categoryname from the database
-(void)getcategory
{
if(listOfCategoryId!=nil)
[listOfCategoryId removeAllObjects];
else
listOfCategoryId = [[NSMutableArray alloc] init];
if(categoryNamesList!=nil)
[categoryNamesList removeAllObjects];
else
categoryNamesList = [[NSMutableArray alloc] init];
if(listOfCategoryType!=nil)
[listOfCategoryType removeAllObjects];
else
listOfCategoryType = [[NSMutableArray alloc] init];
clsDatabase *clsDatabaseObject = [[clsDatabase alloc] init];
sqlite3_stmt *dataRows = [clsDatabaseObject getDataset:"select categoryId,categoryName,categoryType from cardCategoryInfo"];
while(sqlite3_step(dataRows) == SQLITE_ROW)
{
[listOfCategoryId addObject:[NSNumber numberWithInt:sqlite3_column_int(dataRows,0)]];
[categoryNamesList addObject: [NSString stringWithUTF8String:(char *)sqlite3_column_text(dataRows,1)]] ;
[listOfCategoryType addObject:[NSNumber numberWithInt:sqlite3_column_int(dataRows,2)]];
}
sqlite3_finalize(dataRows);
[clsDatabaseObject release];
categoryID = [[listOfCategoryId objectAtIndex:categoryID] intValue];
}
//getting flashcardId and flashcard name from categoryid
-(void)getFlashCard:(int)categoryid
{
if(flashCardsId!=nil)
[flashCardsId removeAllObjects];
else
flashCardsId = [[NSMutableArray alloc] init];
if(flashCardsNamesList!=nil)
[flashCardsNamesList removeAllObjects];
else
flashCardsNamesList = [[NSMutableArray alloc] init];
NSString *martialStr=[NSString stringWithFormat:@"%d", categoryid];
NSString *queryStr=[[NSString alloc] initWithString:@"select flashCardId,flashCardName from flashCardInfo where categoryId="];
queryStr=[queryStr stringByAppendingString:martialStr];
unsigned int lengthOfString=[queryStr length];
char temp2[lengthOfString +1];
strcpy(temp2, [queryStr cStringUsingEncoding:NSUTF8StringEncoding]);
clsDatabase *clsDatabaseObject = [[clsDatabase alloc] init];
sqlite3_stmt *dataRows = [clsDatabaseObject getDataset:temp2];
while(sqlite3_step(dataRows) == SQLITE_ROW)
{
[flashCardsId addObject:[NSNumber numberWithInt:sqlite3_column_int(dataRows,0)]];
[flashCardsNamesList addObject:[NSString stringWithUTF8String:(char *)sqlite3_column_text(dataRows,1)]];
}
sqlite3_finalize(dataRows);
[clsDatabaseObject release];
}
- (void)dealloc {
[self.navigationController popViewControllerAnimated:YES];
[listOfCategoryId release];
[listOfCategoryType release];
[questionViewControllerObj release];
[categoryNamesList release];
[flashCardsNamesList release];
[flashCardsId release];
[indexTableView release];
[super dealloc];
}
@end
最佳答案
您需要实现 cellForRowAtIndexPath 来填充每个表部分中的行。
例如
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// This method gets called for each section and row in your table
NSUInteger cellRow = [indexPath row];
NSUInteger cellSection = [indexPath section];
// Create new table cell
// Deliberately ignoring reusing cells to keep this example simple
UITableViewCell *cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];
// Now build up a string with the info you want in it based on
// data in cellSection and cellRow, and set the cell text
cell.text = @"put your text here";
更新:如果您希望有人为您编写所有代码,您需要编辑您的帖子,使其更短、更清晰。只需解释一下您拥有哪些数据结构以及表格应该是什么样子,例如
DATA STRUCTURES
-NSDictionary of section names as keys.
-Each NSDictionary key points at an NSArray, which holds NSStrings that need to go in each row.
DESIRED OUTPUT
section 0 heading
row 0
row 1
section 1 heading
row 0
row 1
等等
关于objective-c - 如何从 uitableview 单元格的不同部分中的数组生成行上的不同数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/964161/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!