我有UITableView
我需要添加文字和图片 - 简单。
文本来自数据库中的一个表,图像来自另一个表。这些表与ID列链接。
文本来自SQL命令块,它还带来了ID。然后使用Custom API查询ID,并返回图像的URL。
现在经历了这么多麻烦之后。我写得很简单。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
ImageURL = [[NSMutableArray alloc] initWithObjects:@"http://calcuttans.com/palki/wp-content/uploads/2009/02/kidscover-small.png",@"http://outtonightapp.com/uploads/wether2.jpg",@"http://outtonightapp.com/uploads/wether3.jpg",nil];
notification = [[NSMutableArray alloc] initWithObjects:@"wow",@"shit",@"tito", nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [notification count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
// putting text in rows by indexpath.row
cell.textLabel.text = notification[indexPath.row];
// putting an image on a row
switch (indexPath.row) {
case 0:
[cell.imageView setImageWithURL:[NSURL URLWithString:[ImageURL objectAtIndex:(0)]] placeholderImage:[UIImage imageNamed:@"greybox40.png"]];
break;
case 1:
[cell.imageView setImageWithURL:[NSURL URLWithString:[ImageURL objectAtIndex:(1)]] placeholderImage:[UIImage imageNamed:@"greybox40.png"]];
break;
case 2:
[cell.imageView setImageWithURL:[NSURL URLWithString:[ImageURL objectAtIndex:(2)]] placeholderImage:[UIImage imageNamed:@"greybox40.png"]];
break;
}
return cell;
}
@end
现在我需要删除数组并从SQL获取数据并放入数组中,但是当我在过去完成此操作时,由于程序流程,它们还没有进入。那么如何最好地将它们放入数组中。我应该为文本创建.h
和.m
文件,为图片创建一个文件,然后从viewDidLoad
运行它们。我不想处于我拥有所有数据的位置,并且它不再显示在tableview中。目前此代码有效!
谢谢
杰森答案 0 :(得分:0)
在[view didLoad]
上的应用开始时显示一些活动指标,而数据正在加载,
在获得notification
数组调用[_yourTableViewName reloadData];
中的所有数据并停止活动指示符
答案 1 :(得分:0)
在我看来,你真的不想'删除数组'......
tableView本质上是一个用于表示数组的ui设备,或者在分组表的情况下,是一个数组数组。每个单元格应该代表一个数组中的成员,以便屏幕上的内容与数据模型匹配。在你的例子中,我将看一个NSDictionaries的nsarray,每个都有对象的匹配键,如NSStrings和图像等,或者你自己的自定义类的对象数组,它们具有你可以在检索数据时设置的属性,图像文件名称,字符串等模型应始终与屏幕上绘制的内容相匹配
答案 2 :(得分:0)
文本来自SQL命令块,它也带来了 ID。
因此,将dictionary
形成为ID作为键,将文本作为值形成。在numberOfRowsInSection
和cellForRowAtIndexPath
中返回字典计数,从ID创建网址并查询图片。
例如你的dict可能有以下结构:
{
"1" : "wow",
"2" : "shit"
}
现在将numberOfRowsInSection
中的字典计数返回为
return [dict count];
现在在cellForRowAtIndexPath
,获取ID
NSString *id= [[actorsDictionary allKeys] objectAtIndex:indexPath.row];
//Create your custom api based on id and call to get image
//Note: You can try out AsyncImageView if you want
这只是满足您要求的另一种方式。希望它有所帮助。