2015-12-26 2 views
0

Счастливые праздники!Правая деталь UITableViewCell не показывает полные строки на iPad

У меня есть простое приложение с UITableViewController и несколькими разделами. В разделе 0 используется базовый UITableViewStyle, а в разделе 1 используется параметр Right Detail UITableViewStyle. На IPADS только я столкнулся с очень странный вопрос, где строки UITableView в разделе 1 не распространяются вплоть до конца устройства, как показано на рисунке ниже:

enter image description here

Верхний раздел - это раздел 0, базовый UITableViewStyle и нижний раздел - это правая деталь UITableViewStyle.

Является ли это ожидаемым поведением, ошибкой (последняя версия Xcode и iOS 9.2), или это простое решение для этого?

Обратите внимание, что это проблема только для iPad, потому что она выглядит отлично на iPhone, включая 6 Plus, и это то же поведение на симуляторе и на устройстве iPad Air 2.

Любые мысли об этом будут оценены.

Обновление:

Мой код в этом классе:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    // Custom label for the section header titles 
    UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(15, 0, self.moreTabTableView.frame.size.width, 10)]; 
    label.textAlignment = NSTextAlignmentCenter; 
    label.textColor = [UIColor whiteColor]; 
    [label setFont:[UIFont systemFontOfSize:15.0]]; 

    if (section == 0) 
    { 
     label.text = @"Show Your Support"; 
    } 
    else if (section == 1) 
    { 
     label.text = @"Connect with the BOS Team"; 
    } 
    return label; 
} 

Это все создано в раскадровке, так что это только код для этого класса.

Update

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

- (void)layoutSubviews 
{ 
    self.imageView.frame = CGRectMake(8, 8, 30, 30); 
    self.textLabel.frame = CGRectMake(47, 11, 300, 21); 
} 

Я убедившись, что изображение имеет размер надлежащим образом для каждой ячейки. Я только что создал ячейку Donate в качестве подкласса UITableViewCell, и он делает то же самое с сокращением строк.

Я могу воспроизвести это с использованием пользовательского подкласса UITableViewView, но я не уверен, что требуется для того, чтобы линии проходили полностью (и я пробовал множество значений для imageView и textLabel) ,

+1

Показать код, пожалуйста. _You_ - это тот, кто устанавливает линии (разделители). Итак, как вы это делаете? – matt

+0

Спасибо @matt - Я забыл упомянуть, что я действительно создаю это полностью в Раскадровке. Мой код (который я указал в вопросе) относится только к разделам. – amitsbajaj

+0

Можете ли вы опубликовать сокращенную версию этой части приложения на github или что-то еще, чтобы я мог видеть конфигурацию раскадровки? Или, по крайней мере, дать инструкции по его воспроизведению ... – matt

ответ

1

Изменение layoutSubviews реализации выглядеть следующим образом:

- (void)layoutSubviews 
{ 
    [super layoutSubviews]; 
    self.imageView.frame = CGRectMake(8, 8, 30, 30); 
    self.textLabel.frame = CGRectMake(47, 11, 300, 21); 
    self.separatorInset = UIEdgeInsetsZero; 
} 

Если результат не совсем то, что вы хотите, а затем настроить separatorInset соответственно.

(Тем не менее, лучшим подходом было бы использовать полностью пользовательские ячейки, а не пытаться изменить существующий встроенный стиль ячейки, как вы делаете.)

+0

Большое спасибо @matt - Этот код работал как шарм. Кроме того, я ценю советы и, чтобы убедиться, что все пошло не так, я могу просто использовать пользовательские ячейки, но я действительно ценю вашу работу с этим пока. Спасибо! – amitsbajaj

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