2016-08-29 4 views
0

Я хочу изменить кнопку DELETE в UITableViewCell. На самом деле, мне нужно:Есть ли способ изменить кнопку «УДАЛИТЬ» из UITableViewCell?

  1. Изменить положение кнопки
  2. шрифта
  3. цвет текста этой кнопки.

Здесь я могу только изменить текст кнопки в следующем методе делегата:

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

Но как изменить другие атрибуты кнопки. Если кто-нибудь знает, пожалуйста, дайте мне знать.

Спасибо.

+0

Какие еще атрибуты? – Lion

+1

Использование стандартного 'UITableViewRowAction' вы не можете. – vadian

+0

Спасибо ... @vadian – VRAwesome

ответ

0

Чтобы получить эту работу, реализовать следующие два метода на делегата 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 мы не можем изменить, мы можем изменить только

стиль

название

BackgroundColor

backgroundEffect

для получения дополнительной информации см Apple Documents

+0

Я знаю, какие методы мне нужно реализовать, чтобы заставить это работать ... Я думаю, вы не поняли мой вопрос ... :( – VRAwesome

+0

Мне нужно решение для изменения свойств кнопок, а не для того, как работать и что должно быть реализовано ..... В любом случае спасибо за ответ ... :) – VRAwesome

+1

@VRAwesome - нет Мы не можем, можем быть альтернативным способом посмотреть это http://stackoverflow.com/questions/19164188/custom -edit-view-in-uitableviewcell-while-swipe-left-objective-c-or-swift –

0

Вы можете создать пользовательскую ячейку и добавить пользовательский UIButton в ячейку. У меня есть пример

enter image description here

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

Надеется, что это помогает.

+0

Мне нужно показать кнопку, когда пользователь пролистнул конкретную ячейку ... – VRAwesome

+1

Пожалуйста, проверьте это - https: //www.raywenderlich.ком/62435/макияж Перелистываемого стол с видом на клеточно-действия-без текущего ореха улиткой-Views –

 Смежные вопросы

  • Нет связанных вопросов^_^