【发布时间】:2016-04-05 20:03:30
【问题描述】:
我的主视图控制器显示UITableView。
每个单元格都是自定义的(我创建了一个UIView 用于自定义演示)。
为了在我的 tableView 中显示这些项目,我使用以下代码填充了一个数组,其中包含“allFilesFolderPath”文件夹的内容:
- (void)configureView {
_itemArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:allFilesFolderPath error:nil];
}
和
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.itemArray count];
}
我创建了我的自定义单元格以显示它们:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger row = [indexPath row];
myItem = [self.itemArray objectAtIndex:row];
NSLog(@"My Item : %@", _itemArray.description);
static NSString *CellIdentifer = @"cardCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifer];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifer];
}
return cell;
}
当我使用NSLog 打印数组时,我得到了正确的项目列表并按字母顺序排列(就像它们在我的 iPhone 上的文档位置中的存储方式一样):
My Item : (
Music,
Music10,
Music2,
Music3,
Music4,
Music5,
Music6,
Music7,
Music8,
Music9,
Photos,
Videos
)
但是当我在我的 iPhone(或模拟器)中运行应用程序时,单元格会正确显示(按顺序),直到第八项。在这个数字之后,在我的情况下,我没有“Music8”、“Music9”、“Photos”、“Video”,而是回到了数组的开头,所以“Music”、“Music10”、“Music2”和“Music3” "
为了更好地理解我得到了什么,这里是截图:
我真的迷路了!我已经搜索(并再次搜索)我做错了什么,但我没有找到任何东西,一切对我来说都是正确的。
请帮我找出我的问题,以便我可以正常睡觉。
编辑:这是我设置的从其他类中检索 myItem 字符串的方法:
+ (NSString *)getItemName {
return myItem;
}
这是我从其他班级中检索它的方法:
NSString *test = [ViewController getItemName];
_itemName.text = test;
EDIT2:这是用于设置我的自定义 TableViewCell 的代码 (很抱歉错过了这些信息
#import "TableViewCell.h"
@implementation TableViewCell
- (void)awakeFromNib {
// Initialization code
[self cardSetup];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)cardSetup {
_cardView.layer.masksToBounds = NO;
_cardView.layer.shadowOffset = CGSizeMake(0, 1);
_cardView.layer.shadowRadius = 1;
_cardView.layer.shadowOpacity = 0.3;
NSString *test = [ViewController getItemName];
_itemName.text = test;
}
@end
【问题讨论】:
标签: ios objective-c uitableview