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