所以我的应用程序中有一个下载管理器。我今天已经把它活了起来。
我已经实现了UITableViewCellStyleSubtitle,并且显示正常。
我想为它添加多行。现在,我一直在选择文件大小或格式化日期。
我怎么做两个?即。
Cell Title
Date: (followed by file size) or
File Size:
以下是我正在使用的相关代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier] autorelease];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
[cell setSelectionStyle:UITableViewCellSelectionStyleBlue];
}
// Configure the cell.
cell.textLabel.text = [directoryContents objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryNone;
[cell.layer setBorderColor:[UIColor colorWithRed:30/255.0 green:30/255.0 blue:30/255.0 alpha:1.0].CGColor];
[cell.layer setBorderWidth:1.5f];
cell.textLabel.numberOfLines = 0;
//Get file size
NSError *error;
NSString *fileName = [directoryContents objectAtIndex:indexPath.row];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"my folder"];
path = [path stringByAppendingPathComponent:fileName];
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:&error];
NSInteger fileSize = [[fileAttributes objectForKey:NSFileSize] intValue];
//Setting the date
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"my folder"];
filePath = [filePath stringByAppendingPathComponent:fileName];
NSDate *creationDate = nil;
NSDictionary *attributes = [fileManager attributesOfItemAtPath:filePath error:nil];
creationDate = attributes[NSFileCreationDate];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM-dd-yyyy"];
NSString *dateString = [dateFormatter stringFromDate:creationDate];
/////This is where I need to blend the dateString with the file size//////
cell.detailTextLabel.text = [NSString stringWithFormat:dateString, @"%@", [self formattedFileSize:fileSize]];
cell.detailTextLabel.numberOfLines = 2;
return cell;
}
先谢谢你。
答案 0 :(得分:1)
我尝试了这个,出于某种原因,将numberOfLines设置为2对我来说也不起作用,但将其设置为大于2的任何值,或将其设置为0都可以。
您需要正确格式化两个字符串。这不是正确的语法,
[NSString stringWithFormat:dateString, @"%@", [self formattedFileSize:fileSize]]
应该是这样的,
[NSString stringWithFormat:@"%@\n%@", dateString, [self formattedFileSize:fileSize]];
答案 1 :(得分:0)
想出来了。只需要调整字符串的格式。
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@\n%@", dateString, [self formattedFileSize:fileSize]];
在发布此答案时,页面刷新并看到rdelmar在更新的帖子中也显示正确的语法。
感谢并感谢他帮助我思考这个问题。