UITableViewCell, Удалить Рамку Кнопки?


Есть ли способ изменить рамку кнопки "swipe" [DELETE], используемой на UITableViewCells? В настоящее время он центрирован вертикально внутри клетки, но если это возможно, я хотел бы переместить его вниз к голубому путеводителю.

Введите описание изображения здесь

3 7

3 ответа:

Если вы ищете строго верный способ решения этой проблемы, то вам следует перейти в подкласс UITableViewCell и переопределить все методы обработки состояний для корректного рисования вашей собственной кнопки delete (не вызывайте super в этих методах). Но есть и другой простой способ:

@implementation CustomCell
- (void)layoutSubviews {
       [super layoutSubviews];
       if (self.showingDeleteConfirmation) {
             if ([self.subviews count] < 4) return;
             UIView *delBtn = [self.subviews objectAtIndex:3];
             delBtn.frame = CGRectOffset(delBtn.frame, 0, 10);
       }
}
@end

Вместо didTransitionToState:,

Как насчет использования -(void)willTransitionToState: и установки фрейма editingAccessoryView?

- (void)willTransitionToState:(UITableViewCellStateMask)state
{
    if (state == UITableViewCellEditingStyleDelete) 
    {

        NSInteger num = 10;

        UIView.frame = CGRectMake(UIView.frame.origin.x,UIView.frame.origin.y - num,
        UIView.size.width,UIView.size.height);
    }
}

Попробуйте изменить рамку для дополнительного вида