1:如何取消单元格的选中状态

简简单单的一句

[TableView deselectRowAtIndexPath:[TableView indexPathForSelectedRow] animated:YES];解决。

2:通知撤销

通知中心不会保留(retain)监听器对象,在通知中心注册过的对象,必须在该对象释放前取消注册。否则,当相应的通知再次出现时,通知中心仍然会向该监听器发送消息。因为相应的监听器对象已经被释放了,所以可能会导致应用崩溃

//通知中心提供了相应的方法来取消注册监听器
- (void)removeObserver:(id)observer;
- (void)removeObserver:(id)observer name:(NSString *)aName object:(id)anObject; //一般在监听器销毁之前取消注册(如在监听器中加入下列代码):
- (void)dealloc {
//[super dealloc]; 非ARC中需要调用此句
[[NSNotificationCenter defaultCenter] removeObserver:self];
} 3.slider

自定义滑块的大小--需要重写父类的下方法:

接下来是滑动时覆盖的图或者颜色设置:

然后是未覆盖的图或颜色设置:

 

4.删除单元格

 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{

}

// 自定义左滑显示编辑按钮

-(NSArray<UITableViewRowAction*>*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath

{

UITableViewRowAction * rowAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:NSLocalizedString(@"删除", nil) handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

NSLog(@"删除第%d行",indexPath.row);

}];

rowAction.backgroundColor = rgb(0xf1, 0xf1, 0xf1);//改变背景色

[[UIButton appearanceWhenContainedInInstancesOfClasses:@[[ShuSheCollectViewController class]]] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

NSArray *arr = @[rowAction];

return arr;

}

04-14 16:35