分级列表显示

分级列表显示_第1张图片

这是个效果图

设计思想是,使用左右两个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];

你可能感兴趣的:(分级列表显示)