有什么方法可以从 UITableViewCell 更改 "DELETE" 按钮吗?
Is there any way to change "DELETE" button from UITableViewCell?
我想更改 UITableViewCell 中的删除按钮。
实际上,我需要:
- 改变按钮的位置
- 字体
- 该按钮的文本颜色。
这里我只能在下面的委托方法中更改按钮文本:
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *viewAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Follow" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"View Action fired");
}];
viewAction.backgroundColor = [UIColor clearColor];
return @[callAction];
}
但是如何改变按钮的其他属性。如果有人知道,请告诉我。
谢谢。
要实现此功能,请在 UITableView 的委托上实现以下两种方法以获得所需的效果
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// you need to implement this method too esle nothing will work:
}
检查您创建的方法,您创建了 UITableViewRowAction *viewAction 的名称,但您返回了 callAction 的值修改一次并尝试
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *callAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Follow" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"View Action fired");
}];
callAction.backgroundColor = [UIColor clearColor];
return @[callAction];
}
在标准中 UITableViewRowAction
我们不能改变,我们只能改变
风格
标题
背景颜色
背景效果
有关详细信息,请参阅 Apple Documents
您可以创建自定义单元格并将自定义 UIButton 添加到单元格中。我有一个例子
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
ViewOrderCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath] ;
if (cell == nil)
{
cell = [[ViewOrderCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
[cell.btnUpdate addTarget:self action:@selector(updateOrder:) forControlEvents:UIControlEventTouchUpInside];
[cell.btnDelete addTarget:self action:@selector(deleteOrder:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
-(void)updateOrder:(id)sender
{
NSLog(@"update");
}
-(void)deleteOrder:(id)sender
{
NSLog(@"delete");
}
希望对您有所帮助。
我想更改 UITableViewCell 中的删除按钮。 实际上,我需要:
- 改变按钮的位置
- 字体
- 该按钮的文本颜色。
这里我只能在下面的委托方法中更改按钮文本:
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *viewAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Follow" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"View Action fired");
}];
viewAction.backgroundColor = [UIColor clearColor];
return @[callAction];
}
但是如何改变按钮的其他属性。如果有人知道,请告诉我。
谢谢。
要实现此功能,请在 UITableView 的委托上实现以下两种方法以获得所需的效果
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// you need to implement this method too esle nothing will work:
}
检查您创建的方法,您创建了 UITableViewRowAction *viewAction 的名称,但您返回了 callAction 的值修改一次并尝试
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *callAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Follow" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
NSLog(@"View Action fired");
}];
callAction.backgroundColor = [UIColor clearColor];
return @[callAction];
}
在标准中 UITableViewRowAction
我们不能改变,我们只能改变
风格
标题
背景颜色
背景效果
有关详细信息,请参阅 Apple Documents
您可以创建自定义单元格并将自定义 UIButton 添加到单元格中。我有一个例子
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
ViewOrderCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath] ;
if (cell == nil)
{
cell = [[ViewOrderCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
[cell.btnUpdate addTarget:self action:@selector(updateOrder:) forControlEvents:UIControlEventTouchUpInside];
[cell.btnDelete addTarget:self action:@selector(deleteOrder:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
-(void)updateOrder:(id)sender
{
NSLog(@"update");
}
-(void)deleteOrder:(id)sender
{
NSLog(@"delete");
}
希望对您有所帮助。