我在viewDidLoad上创建以下数据:

- (void)viewDidLoad {
    [super viewDidLoad];

    food = [[NSMutableArray alloc] initWithObjects: @"Harvey's",@"McCormicks",@"Subway",nil];
    gifts = [[NSMutableArray alloc] initWithObjects:@"The gift Shop",@"Lilo Gifts",@"Prezzies for All", nil];
    services = [[NSMutableArray alloc] initWithObjects:@"Hair Snippers",@"Laundro-mat",@"Accountants",@"Shoe fitters", nil];
    hotel = [[NSMutableArray alloc] initWithObjects:@"Hotel Paradiso",@"Dick & Doms B&B",@"Super Hotel",@"Castle B&B", nil];
    pubs = [[NSMutableArray alloc] initWithObjects:@"The Snuggly Duckling",@"Beer's Arms",@"Merlins Beard", @"Cheers", nil];


}

这是我的数据源方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    return 5;
}

- (NSString*)tableView:(UITableView*)tableView titleForHeaderInSection:(NSInteger)section {
    switch (section) {
        case 0:
            return NSLocalizedString(@"Food & Restaraunts", nil);
        case 1:
            return NSLocalizedString(@"Shopping/ Gifts", nil);
        case 2:
            return NSLocalizedString(@"Services", nil);
        case 3:
            return NSLocalizedString(@"Hotels / B&B's", nil);
        case 4:
            return NSLocalizedString(@"Pubs",nil);

        default:
            return nil;
    }



}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    switch (section) {
        case 0:
            return 3;
        case 1:
            return 3;
        case 2:
            return 4;
        case 3:
            return 4;
        case 4:
            return 4;
        //default:
        //  return 1;

    }



}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    //mine  

        switch (indexPath.section) {
    case 0:
        [[ cell textLabel]
         setText:[food objectAtIndex:indexPath.row]];
        break;
    case 1:
        [[ cell textLabel]
         setText:[gifts objectAtIndex:indexPath.row]];
        break;
    case 2:
        [[ cell textLabel]
        setText:[services objectAtIndex:indexPath.row]];
        break;
    case 3:
        [[ cell textLabel]
        setText:[hotel objectAtIndex:indexPath.row]];
        break;
    case 4:
        [[ cell textLabel]
        setText:[pubs objectAtIndex:indexPath.row]];
        break;

    } 

    return cell;
}

}

它的实际作用是正确显示前10行,然后再次重复该列表,如果我在前几节中添加更多行,它将在表的前面重复。.我已经清除了缓存等,但是没有任何效果。

===============>>#1 票数:1 已采纳

这是因为您只设置了可重复使用单元格的内容一次。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];}
//mine  

    switch (indexPath.section) {
case 0:
    [[ cell textLabel]
     setText:[food objectAtIndex:indexPath.row]];
    break;
case 1:
    [[ cell textLabel]
     setText:[gifts objectAtIndex:indexPath.row]];
    break;
case 2:
    [[ cell textLabel]
    setText:[services objectAtIndex:indexPath.row]];
    break;
case 3:
    [[ cell textLabel]
    setText:[hotel objectAtIndex:indexPath.row]];
    break;
case 4:
    [[ cell textLabel]
    setText:[pubs objectAtIndex:indexPath.row]];
    break;



return cell;}

我不擅长后期格式化。 从“重用堆栈”中获取单元格后,应设置其内容。

  ask by Craig translate from so

未解决问题?本站智能推荐:

1回复

UITableView显示顺序?

我正在主机上使用来自外部数据库的MYSQL数据填充UITableView,所以我想按相反的顺序显示这些数据,例如,第一行成为最后一行,最后一行成为第一行! 有什么办法可以在Xcode上执行此操作,或者我需要在MYSQL上执行此操作吗?
1回复

从UItableview按字母顺序对数据排序的最简单方法

我看了一下,但找不到合适的答案。 我有一个用药物名称填充的表格视图。 药品已输入,因为它们是从文本输入Xcode的,如下所示。 此药物清单不是完整清单,实际上包含的药物更多,太多,无法手动分类! 在接下来的几周内,我将进一步介绍。 我没有时间或有权力将其更改为以字母顺序显示在
3回复

如何按添加数据的顺序获取核心数据并在UITableView中以该顺序显示?

我正在UITableViewController显示一个名为Skills的实体。 我在viewDidLoad获取这样的结果: 另外,我用于索引路径的单元格是: 我通过在委托方法中使用带有文本字段的UIAlertView将新的NSManagedObject *newSkill添加
1回复

UITableView不显示数据

我正在实现动态表格视图。 该表格视图控制器是通过另一个视图控制器上的按钮触摸推入的。 但是,即使日志指示正确设置了单元格行,屏幕上也没有显示任何内容。 可能是什么原因? 我已将部分的数量实现为1。这是表视图控制器中的代码: } } }
3回复

UITableView没有显示我的数据?

在此先感谢您阅读本文并尝试为我解决问题。 我已经使用sqlite 3构成了数据库,并且希望创建一个应用程序,在其中可以输入产品信息(应发送到数据库),然后可以在UIViewTable中查看该信息。 但是,创建完所有类和方法后-我的UIViewTable不显示数据库中的相关信息-它完全
2回复

UITableView数据未显示

我创建了一个自定义类(“ customClass”),它是UIView的子类。 然后,将tableView添加到其子视图中,并为datasoucre创建一个array 。 我将delegate和datasource设置为self。 然后在storyboard ,我设置了UIViews类cu
1回复

从UIDocument获取单元格数据时,如何确保UITableView中显示的列表顺序

我的应用程序通过FileManager为UITableView中的每个单元获取数据。 单元格需要来自需要打开UIDocument对象的文件中的数据。 但是,似乎打开完成处理程序中的代码无法预料地执行,因此单元格不会按我希望的顺序显示。 我该如何解决这个问题? 如果有人提供任何线索,我
1回复

UITableView的tableFooterView以非常奇怪的方式显示

我在界面生成器中配置了UIViewController。 它包含一个UITableView,一个UIView作为页眉和另一个UIView作为页脚。 (请注意,这两个用作页眉和页脚的UIView不是节的页眉和页脚。) 标头工作得很好。 在界面构建器中,UITableView与超级视
1回复

UITableView中的UISwitch出现奇怪的显示问题

我正在使用以下代码将UISwitch添加到UITableView单元格,但是出现了奇怪的显示问题。 出现此问题似乎是因为我定期自动刷新TableView,这会重新创建UISwitch。 图片最好显示正在发生的事情。 像这样开始: 变成这样: 顶部开关已打开和关闭。 达
1回复

在UITableView中显示单元格的奇怪问题

我有UITableView与方法: 所以,问题是Xcode首先运行 它返回我1。稍后它将运行override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> In