- 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/
我坚持我的项目(用 Swift 编写) 我有一个 UITableView,它有一个字符串,它提供了表格中的十个类别。我想做的是选择这些类别中的一个来触摸它,然后打开一个包含其他类别的 secondTa
好的,这从 iOS 7 Beta 6 开始就被打破了。 在启动时,我将表格 View 的背景更改为图像(如果我将其设置为颜色,它会做同样的事情)并且表格单元格是白色的...... 当我选择一个单元格时
我有一个包含不同部分的 UITableView,每个单元格上都有一个图像。因为图像是为每个单元格单独下载的,所以我正在寻找一种延迟加载解决方案。 在 iOS Developer Library 上,它
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
可以在UIRefreshControl的底部添加UITableView吗? 我会用它来加载更多数据。 拜托,有什么建议吗? 最佳答案 我相信不会有任何简单的解决方案来解决这个问题。可能有人可以编写一个
我有一个 UITableView 和一个使用 Swift 的自定义 UITableViewCell。当我设置 self.MyTable.editing = true 时,我看到该行上有删除图标,并且似
我为 iPhone 创建了一个下载器应用程序。我有用于显示主动/被动下载的表格 View 。在 tableview 的自定义单元格中有进度条,它显示 %XX 下载状态。现在我正在使用 NSTimer
我正在编写 UITableView 的自定义子类。我需要这个对象本身成为它自己的数据源和委托(delegate),然后这个子类将有它自己的数据源和委托(delegate)。这主要是为了让我可以拦截对数
我有一个问题已经困扰我几天了。 我有一个名为 countries 的数组。该数组包含一个自定义对象,其中包含国家、城市、IP、状态等数据。 我需要在按属性“国家/地区”划分的表格 View 中显示这些
我有一个 UITableViewController,目前显示 4 个将始终显示的单元格,并且想将它们组合在一起,但我不知道如何操作。当在 UIViewController 或类似的东西上插入标准 U
我以编程方式创建了一个 UITableView,现在我想向它添加一个固定的标题。 正如我下面的代码一样,标题也随着我的 tableview 滚动。 UILabel *label = [[[UI
我正在创建一个 UITableViewController(在 UINavigationController 的根部)并在另一个 View Controller 之上以模态方式呈现它。我让它在一定程度
我有问题。我有动态 TableView 。所以我需要在我的 textLabel 中更改文本大小。我试过: 一个: cell.textLabel.font = [UIFont systemFontOfS
iOS 8 中的新功能是 separatorEffect属性,您可以为其分配 UIVisualEffect。有没有人知道这是做什么用的?我试过了,我不认为它有任何,呃,视觉效果。 最佳答案 我想知道完
今天早上,我刚刚安装了包含iOS 6的新Xcode。 我有一个加载了包含章节和行的plist文件的表格 View 。各章定义各节。 用户选择章节和行,并将tableview自动滚动到正确的位置(在vi
我在iOS 7上启动VoiceOver时遇到了一些麻烦。我确实在UITableViewHeaderFooterView中注册了viewDidLoad子类的实例,但是当我用-[tableView deq
我在 UITableView 中添加了一些数据,我想更改单元格中显示的文本的颜色。 是否有委托(delegate)方法可以执行此操作,或者有其他方式吗? 最佳答案 无需标签 您只需要编码: cell.
是否可以在滚动 UITableView 时动态更改单元格的高度? 当用户将其向下拖动到顶部时,滚动位置到达某个点时,我需要更改多个单元格的高度。我可以通过发出 reloadData 成功地做到这一点,
我正在使用 iOS 5,并在表格中动态生成单元格(2 个部分,每个部分 3 行)。每个部分都有一个标题,该标题也是使用 titleForHeaderInSection 调用动态生成的。 我还设置了一个
我正在寻找 UITableView 的回调函数当我使用 Apple Remote 导航并按向上或向下键选择行时(而不是按 Enter 键时),当该行聚焦时。 在 iOS 上,我们有 didSelect
我是一名优秀的程序员,十分优秀!