1

テーブルビューの上にあるセグメント化されたコントロールでテーブルビューのコンテキストを制御しようとしています。変更セグメントで、異なるセルを使用してテーブル tableView にデータをリロードしたい (2 つのタイプのセルと、タイプごとに 2 つのデータ配列があります)。別のセルでデータをクリアしてリロードする方法は?

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つ以上のテーブルビューでデータを変更する場合に最も重要な行です.

@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 に答える