gpt4 book ai didi

ios - 滑动行或单击编辑按钮时更改 UITableViewCell 中默认红色删除按钮的颜色

转载 作者:IT王子 更新时间:2023-10-29 07:42:13 26 4
gpt4 key购买 nike

我想在单击编辑按钮或滑动 UITableView 行时更改 UITableViewCell 的减号按钮和删除按钮的颜色。到目前为止我已经实现了这段代码:

-(IBAction)doEdit:(id)sender
{

[[self keyWordsTable] setEditing:YES animated:NO];
}

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

}

最佳答案


iOS 8 和 9 ( props to this post )


注意:如果您正在使用现有的 iOS 7 项目,则需要将目标更新到 iOS 8 才能获得此功能。还要记得设置 UITableviewDelegate。

现在所有的魔法都在这里发生(你想要多少按钮也有多少!!!!):

 -(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewRowAction *button = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Button 1" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"Action to perform with Button 1");
}];
button.backgroundColor = [UIColor greenColor]; //arbitrary color
UITableViewRowAction *button2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Button 2" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
{
NSLog(@"Action to perform with Button2!");
}];
button2.backgroundColor = [UIColor blueColor]; //arbitrary color

return @[button, button2];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// you need to implement this method too or nothing will work:

}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}


(iOS 7)


**activate the delete button on swipe**

// make sure you have the following methods in the uitableviewcontroller

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"You hit the delete button.");
}

设置自定义文本标签而不是删除。

-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
return @"Your Label";
}

为按钮第 1 部分设置自定义颜色 - 警告,这在技术上涉及戳私有(private)苹果 API。但是,不会阻止您使用作为 UIKIT 一部分的公共(public)方法搜索来修改 subview 。

创建一个 uitableviewcell 类(另见 https://stackoverflow.com/a/22350817/1758337)

- (void)layoutSubviews
{
[super layoutSubviews];
for (UIView *subview in self.subviews) {
//iterate through subviews until you find the right one...
for(UIView *subview2 in subview.subviews){
if ([NSStringFromClass([subview2 class]) isEqualToString:@"UITableViewCellDeleteConfirmationView"]) {
//your color
((UIView*)[subview2.subviews firstObject]).backgroundColor=[UIColor blueColor];
}
}
}
}

另一个注意事项:不能保证这种方法在未来的更新中有效。另请注意,提及或使用私有(private) UITableViewCellDeleteConfirmationView 类可能会导致 AppStore 拒绝。

为按钮部分 2 设置自定义颜色

回到你的 uitableviewcontroller

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
[YourTableView reloadData];
}

(直到下一次在 tablecell 上调用 layoutSubviews 时才会调用备用颜色,因此我们通过重新加载所有内容来确保发生这种情况。)

关于ios - 滑动行或单击编辑按钮时更改 UITableViewCell 中默认红色删除按钮的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com