2013-10-03 3 views
4

Когда я вхожу в режим редактирования UITableView в iOS 7, содержимое моей ячейки перекрывает кнопку удаления. enter image description hereiOS7 UItableview Переключение содержимого режима редактирования

Я проверил UITableViewCell content overlaps delete button when in editing mode in iOS7 вопрос, но это не помогает в моем случае.

Я создаю свою ячейку в tableView:cellForRowAtIndexPath метод динамически.

Пожалуйста, дайте мне знать, если ваши идеи по этой проблеме.

+1

Взгляните: http://stackoverflow.com/a/19117382/1603072 – Bhavin

+0

хорошо я попробую его – Naveen

ответ

0
- (void)layoutSubviews 
{ 
[super layoutSubviews]; 



self.contentView.frame = CGRectMake(0, 
            self.contentView.frame.origin.y, 
            self.contentView.frame.size.width, 
            self.contentView.frame.size.height); 



if ((self.editing 
    && (_state & UITableViewCellStateShowingDeleteConfirmationMask))){ 
    float indentPoints = self.indentationLevel * self.indentationWidth; 
    self.contentView.frame = CGRectMake(50, 
             self.contentView.frame.origin.y, 
             self.contentView.frame.size.width - indentPoints - 30, 
             self.contentView.frame.size.height); 
} 
} 
0

Я использую это в полной мере реализацию, чтобы получить все, что хорошо выглядеть:

- (void)layoutSubviews 
{ 
[super layoutSubviews]; 

self.contentView.frame = CGRectMake(0, 
            self.contentView.frame.origin.y, 
            self.contentView.frame.size.width, 
            self.contentView.frame.size.height); 

if ((self.editing 
    && ((_state & UITableViewCellStateShowingEditControlMask) 
     && !(_state & UITableViewCellStateShowingDeleteConfirmationMask))) || 
    ((_state & UITableViewCellStateShowingEditControlMask) 
    )) 
{ 
    float indentPoints = self.indentationLevel * self.indentationWidth; 
    self.contentView.layer.masksToBounds = YES; 
    self.contentView.frame = CGRectMake(50, 
             self.contentView.frame.origin.y, 
             self.contentView.frame.size.width - indentPoints, 
             self.contentView.frame.size.height); 
} 


if ((self.editing 
    && (_state & UITableViewCellStateShowingDeleteConfirmationMask))) 
{ 
    float indentPoints = self.indentationLevel * self.indentationWidth; 
    self.contentView.frame = CGRectMake(50, 
             self.contentView.frame.origin.y, 
             self.contentView.frame.size.width - indentPoints - 30, 
             self.contentView.frame.size.height); 
} 
} 
0

Может быть вы устанавливаете ячейки setBackgroundImage для ячейки в cellForRowAtIndexPath (делегат метода). Не устанавливайте это здесь. Установите изображение:

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { cell.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"cellList.png"]]; } 
Смежные вопросы