【问题标题】:Updating uitableview custom cell更新 uitableview 自定义单元格
【发布时间】:2011-08-02 12:39:24
【问题描述】:

如果您不像我那么盲目,我有一个问题可能相当容易。我有一个带有海关单元格的表格视图,这些单元格从数据源中获取信息。在这个自定义单元格中,我有一个按钮可以更改所有单元格的数据源。按下一个单元格中的按钮应该使所有其他单元格变暗。数据源已更改,但我的问题是只有当我在表格视图中拖动单元格时,单元格才会更新。按下按钮时的方法放在tableview中,以[tableview reloadData]结尾;但它只在拖动时更新。

感谢任何帮助

--更新-- 下面显示了按下按钮时调用的方法。 switch case 改变了数据源。 button.tag 用于查看按钮被按下的单元格。

-(void)myPackageButtonPushed:(id)sender
{
   UIButton* myButton = (UIButton*)sender;
   NSLog(@"id %d",myButton.tag);
   int test=myButton.tag;
   for (int i=0; i<[packageList count]; i++) {
        TVPackage *tvpack=[packageList objectAtIndex:i];
        [tvpack setMyPackage:NO];
    }

    switch (test) {
        case 0:
            NSLog(@"0");
            [[packageList objectAtIndex:0] setMyPackage:YES];
              [[packageList objectAtIndex:1] setMyPackage:YES];

            break;
        case 1:
            NSLog(@"1");
            [[packageList objectAtIndex:0] setMyPackage:YES];
            [[packageList objectAtIndex:1] setMyPackage:YES];
            break;
        case 2:
            NSLog(@"2");
            [[packageList objectAtIndex:2] setMyPackage:YES];
            [[packageList objectAtIndex:3] setMyPackage:YES];
            break;
        case 3:
            NSLog(@"3");
            [[packageList objectAtIndex:2] setMyPackage:YES];
            [[packageList objectAtIndex:3] setMyPackage:YES];
            break;
        case 4:
            NSLog(@"4");
            [[packageList objectAtIndex:4] setMyPackage:YES];
            [[packageList objectAtIndex:5] setMyPackage:YES];
            break;
        case 5:
            NSLog(@"5");
            [[packageList objectAtIndex:4] setMyPackage:YES];
            [[packageList objectAtIndex:5] setMyPackage:YES];
            break;
        default:
            break;
    }

    [self.tableview performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
    }

【问题讨论】:

  • 通过在 cellForRowAtIndexPath 方法中设置断点来确认 tableview 是否真的重新加载..
  • 方法 cellForRowAtIndexPath 在调用 [reload data] 时不会立即调用。我在 cellForRowAtIndexPath 中有几个 nslog,它们在 tableview 时被调用。被拖了
  • 根据您的评论,您尚未使用有效对象重新加载 tableview。在此处显示代码 sn-ps 以获得更好的解决方案。

标签: iphone uitableview custom-cell


【解决方案1】:

我没有正确设置 Interface Builder 和类之间的链接。 IB 设置为 UIViewController 而不是我的特定类。感谢您的帮助和您的时间。

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多