Изображение кнопки удаления uitableview в iOS

Я хочу изменить изображение кнопки смахивания ячейки uitableview. Я искал его, но я не получил желаемого результата. Я использовал этот код:

- (void)willTransitionToState:(UITableViewCellStateMask)state{
    [super willTransitionToState:state];
    if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) {
        for (UIView *subview in self.subviews) {
            if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) {
                UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)];
                [deleteBtn setImage:[UIImage imageNamed:@"delete.png"]];
                [[subview.subviews objectAtIndex:0] addSubview:deleteBtn];

            }
        }
    }
}

Но это не работает в iOS 9. Пожалуйста, предложите мне, как добиться этого в iOS 9.

Если бы я использовал этот код, то он работал, но изображение не было установлено должным образом:

[[UIButton
      appearanceWhenContainedIn:[TableViewCell class], nil]
     setImage:[UIImage imageNamed:@"Delete-notification.png"] forState:UIControlStateNormal];


-(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");
    }];


    return @[button];
}

как это]1

Заранее спасибо!


person Sudha Tiwari    schedule 01.12.2015    source источник
comment
stackoverflow.com/ вопросы/1615469/   -  person Femina Brahmbhatt    schedule 01.12.2015
comment
@FeminaBrahmbhatt Я тоже использовал это, но не работает :(   -  person Sudha Tiwari    schedule 01.12.2015


Ответы (3)


Я использую эту библиотеку https://github.com/CEWendel/SWTableViewCell для отображения изображения на кнопке смахивания .

#import "SWTableViewCell.h"

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
        SWTableViewCell  *cell = [tableView dequeueReusableCellWithIdentifier:@"idTipsCell"];
        [cell setLeftUtilityButtons:[self leftButtonsWithColor:tipsData.color accessibilityValue:(tipsData.isLiked) ? @"1":@"0"] WithButtonWidth:80.0];
        cell.delegate = self;
        return cell;
  }

- (NSArray *)leftButtonsWithColor:(UIColor*)color accessibilityValue:(NSString*)accessibilityValue {
     NSMutableArray *leftUtilityButtons = [NSMutableArray new];

     [leftUtilityButtons sw_addUtilityButtonWithColor:color icon:[UIImage imageNamed:@"img_like"] accessibilityValue:accessibilityValue];
     [leftUtilityButtons sw_addUtilityButtonWithColor:color icon:[UIImage imageNamed:@"img_share"] accessibilityValue:@"shareButton"];

     return leftUtilityButtons;
 }

Надеюсь, это поможет вам.

person Ekta Padaliya    schedule 01.12.2015

Я бы не пошел на какой-либо взлом, например, поиск подпредставления где-то в иерархии ячеек. Я бы либо сам реализовал смахивание (это не так уж сложно), либо использовал какой-нибудь модуль. Смотрите этот:

https://www.cocoacontrols.com/controls/abmenutableviewcell

person Pavel Smejkal    schedule 01.12.2015
comment
Я могу использовать для этого UITableViewRowAction, но я хочу знать, как установить изображение на кнопку удаления. - person Sudha Tiwari; 01.12.2015

Это не совсем то, о чем вы просите, но вы можете заменить текст «Удалить» смайликом корзины.

func tableView(tableView: UITableView, titleForDeleteConfirmationButtonForRowAtIndexPath indexPath: NSIndexPath) -> String? {
    return "????"
}
person Suragch    schedule 10.06.2016
comment
Интересный подход)) - person Oleg Gordiichuk; 26.04.2017