#import "ViewController.h"
#define kScreenW [UIScreen mainScreen].bounds.size.width
#define kScreenH [UIScreen mainScreen].bounds.size.height
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
@property (nonatomic,strong) NSMutableArray *datalist;
@property (nonatomic,strong) UITableView *tableView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, kScreenW, kScreenH-64) style:UITableViewStyleGrouped];
_tableView.dataSource = self;
_tableView.delegate = self;
[self.view addSubview:_tableView];
//1.获取文件路径
NSString *path = [[NSBundle mainBundle]pathForResource:@"font" ofType:@"plist"];
//2.通过路径加载容器对象
// _datalist = [NSMutableArray arrayWithArray:[NSArray arrayWithContentsOfFile:path]];
//(1)读取文件不可变数组
NSArray *plist = [NSArray arrayWithContentsOfFile:path];
//(2)初始化可变数组
_datalist = [[NSMutableArray alloc]init];
//(3)将所有的二级数组复制为可变数组 并添加到datalist中
for (NSArray *subarr in plist) {
NSMutableArray *ma = [NSMutableArray arrayWithArray:subarr];
[_datalist addObject:ma];
}
}
//进入多选模式
- (IBAction)multipleSelect:(UIButton *)sender {
if (sender.selected == YES) {
//1.获取所有选中的单元格下标
NSArray *indexPaths = [_tableView indexPathsForSelectedRows];
//2.删除数据
/**
* 为了防止下标越界,所以采用倒序遍历并删除
*/
NSLog(@"%@",indexPaths);
for (NSInteger i = indexPaths.count-1; i>=0; i--) {
NSIndexPath *indexP = indexPaths[i];
//(1)获取section对应的数组
NSMutableArray *subArr = _datalist[indexP.section];
//(2)
[subArr removeObjectAtIndex:indexP.row];
}
//3.删除单元格
[_tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
}
sender.selected = !sender.selected;
//在编辑期间允许单元格多选 --> 开启该选项 插入单元格和删除单个单元格 功能就不存在了
_tableView.allowsMultipleSelectionDuringEditing = sender.selected;
//表视图开启编辑模式
[_tableView setEditing:sender.selected animated:YES];
NSLog(@"%@",_datalist);
}
#pragma mark --UITableViewDataSource
//可选方法:返回 组个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return _datalist.count;//组个数
}
//返回 每个组有多少个单元格
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
//1.从datalist中获取section下标对应的对象--->小数组(盛放的NSString*)
NSArray *subArray = _datalist[section];
return subArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//1.
static NSString *identifier = @"font_cell";
//2.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
//3.
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
//1.不分组情况
// cell.textLabel.text = [_dataList objectAtIndex:indexPath.row];
//
// cell.textLabel.font = [UIFont fontWithName:[_dataList objectAtIndex:indexPath.row] size:20];
//2.分组
//(1)在datalist中 找到section对应的二级数组
NSArray *subArray = _datalist[indexPath.section];
//(2)在二级数组中 找到row对应的字符串对象
cell.textLabel.text = subArray[indexPath.row];
cell.textLabel.font = [UIFont fontWithName:subArray[indexPath.row] size:20];
return cell;
}
@end
Day.03.03 UITableView 定制单元格
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- #pragma mark tapGestureRecgnizerdelegate 解决手势冲突 - (BOOL)g...
- iOS中,UICollectionView和UITableView已经有系统默认选中颜色设置,但是只有无色,蓝色,...