UITableViewCell, Удалить кнопку Frame? - PullRequest
7 голосов
/ 28 июля 2011

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

enter image description here

Ответы [ 3 ]

15 голосов
/ 10 августа 2011

Если вы ищете абсолютно верный способ решения этой проблемы, то вам следует создать подкласс UITableViewCell и переопределить все методы обработки состояний для правильного рисования собственной кнопки удаления (не вызывайте 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
0 голосов
/ 11 августа 2011

Вместо 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);
    }
}
0 голосов
/ 28 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...