我正在使用原型单元,我尝试删除:
JsonTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
但它在表视图中返回空白单元格.
所以这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; JsonTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell=[[JsonTableViewCell alloc]initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; }
我也试着保持
JsonTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
并配置单元格如:
if (cell == nil) { cell.title.text = titleStrip; }
但是在这种情况下,我在故事板中得到了原型单元格.它不是空白,但没有填充数据.
谁能告诉我我做错了什么?
更新**** 10.10.2014 *******
也许所有代码都可以帮助:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return myObject.count; }
-
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell";
JsonTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell=[[JsonTableViewCell alloc]initWithStyle: UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; }
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0ul); dispatch_async(queue,^{
NSDictionary *tmpDict = [myObject objectAtIndex:indexPath.row];
NSMutableString *text; text = [NSMutableString stringWithFormat:@"%@",[tmpDict objectForKeyedSubscript:title]];
NSMutableString *detail; detail = [NSMutableString stringWithFormat:@"%@ ",[tmpDict objectForKey:content]];
NSURL *url = [NSURL URLWithString:[tmpDict objectForKey:thumbnail]]; NSData *data = [NSData dataWithContentsOfURL:url]; UIImage *img = [[UIImage alloc]initWithData:data];
NSString *titleStrip = [[text description] stringByReplacingOccurrencesOfString:@""withString:@""];
NSString *detailStrip = [[detail description] stringByReplacingOccurrencesOfString:@""withString:@""];
dispatch_sync(dispatch_get_main_queue(),^{
cell.titreNews.text = titleStrip;
cell.detailNews.textAlignment = NSTextAlignmentJustified;
cell.detailNews.text = detailStrip;
UIImage *image0 = [UIImage imageNamed:@"video.png"];
if (img != nil) { cell.imageNews.image = img; } else { cell.imageNews.image = image0; }
}); });
[cell setAccessoryType:UITableViewCellAccessoryNone];
return cell; }
解决方法
if (cell == nil) { cell.title.text = titleStrip; }
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //Don't even try to dequeue,just create new cell instance JsonTableViewCell *cell = [[JsonTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; cell.title.text = titleStrip; return cell; }