1

我正在尝试使用分段控件(在 tableview 上方)控制 tableview 的上下文。在更改段上,我想用不同的单元格重新加载表 tableView 中的数据(我有两种类型的单元格和每种类型的两个数据数组)。如何清除和重新加载不同单元格的数据?

4

3 回答 3

3

我只是为@jaydee3 提到的内容提供了几行代码。

- (IBAction)segmentControlValueChanged:(UISegmentedControl *)sender
{
    //Do something
    [self.tableView reloadData];
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.segmentControl.selectedSegmentIndex?[self.dataArray2 count]:[self.dataArray1 count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(self.segmentControl.selectedSegmentIndex){
       // Create Type cell for selected Index 1
    }
    else{
       // Create Type cell for selected Index 0
    }
}
于 2013-03-12T06:25:46.080 回答
1

在您的 tableViewdelegate中,检查分段控件中选择的内容并返回正确的单元格。

如果分段控件发生更改,请调用reloadData.tableView

于 2013-03-11T23:07:32.973 回答
0

1.如果要更改 2 个或更多 tableview 中的数据,下面是最重要的行。

@IBAction func segmentValueChanged(_ sender: UISegmentedControl) 
{
    self.<YourTableViewName>.reloadData()
}

2.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var index = <segmentObjectCreated>.selectedSegmentIndex

    if index == 0 {
        return <table1ArrayList>.count
    }
    else{
        return <table12ArrayList>.count
    }
}

3.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = <TableViewObj>.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

    var index = <segmentObjectCreated>.selectedSegmentIndex

    if index == 0 {
        cell.textLabel?.text = <table1ArrayList>[indexPath.row].productName
    }
    else {
        cell.textLabel?.text = <table2ArrayList>[indexPath.row].newLaunch
    }
    return cell
}

就是这样,快乐编码!

于 2017-10-15T22:30:17.897 回答