我正在尝试使用分段控件(在 tableview 上方)控制 tableview 的上下文。在更改段上,我想用不同的单元格重新加载表 tableView 中的数据(我有两种类型的单元格和每种类型的两个数据数组)。如何清除和重新加载不同单元格的数据?
问问题
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 个或更多 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 回答