这是个效果图
设计思想是,使用左右两个tableview分别展示
NSArray * _allArr;
NSMutableArray * _rightArr;
UITableView * _leftTableView;
UITableView * _rightTableView;
初始化
_arr = @[@{@"全部":@[ @"棉花", @"小麦", @"水稻", @"甘蔗", @"葡萄", @"玉米", @"花生", @"葡萄", @"玉米", @"花生"]}, @{@"大田作物":@[@"小麦", @"水稻", @"甘蔗"]}, @{@"经济作物":@[@"棉花", @"小麦", @"水稻", @"甘蔗"]}, @{@"蔬菜作物":@[@"小麦", @"水稻", @"甘蔗", @"葡萄", @"玉米"]}, @{@"水果作物":@[@"葡萄", @"玉米", @"花生"]}];
_rightArr = [[_arr[0] allValues] firstObject];
创建视图
_leftTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width / 2, 0)];
_rightTableView = [[UITableView alloc] initWithFrame:CGRectMake(self.view.frame.size.width / 2, 0, self.view.frame.size.width / 2, 0)];
- (void)buttonAction {
[UIView animateWithDuration:0.3 animations:^{
_leftTableView.frame = CGRectMake(0, 0, self.view.frame.size.width / 2, 44 * 5);
_rightTableView.frame = CGRectMake(self.view.frame.size.width / 2, 0, self.view.frame.size.width / 2, 44 * 8);
}];
}
numberOfRow
if (tableView == _rightTableView) {
return _rightArr.count;
}
return _arr.count;
uitableViewCell
if (tableView == _leftTableView) {
cell.textLabel.text = [[_arr[indexPath.row] allKeys] firstObject];
} else {
cell.textLabel.text = _rightArr[indexPath.row];
}
didselect
_rightArr = [[_arr[indexPath.row] allValues] firstObject];
if (_rightArr.count < 9) {
_rightTableView.frame = CGRectMake(self.view.frame.size.width / 2, 0, self.view.frame.size.width / 2, 44 * _rightArr.count);
} else {
_rightTableView.frame = CGRectMake(self.view.frame.size.width / 2, 0, self.view.frame.size.width / 2, 44 * 8);
}
[_rightTableView reloadData];