2015-02-02 2 views
0

Я пытаюсь поместить экземпляр UIDatePicker в вид аксессуаров ячейки UITableView и следовал за этим SO thread в качестве шаблона. Тем не менее, это выглядит так, как будто сборщик будет размещен над ячейкой целиком:Добавление UIDatePicker к представлению содержимого ячеек

enter image description here

Ниже приведен код, я использую, чтобы попытаться добавить Date Picker в аксессуаре зрения UITableView:

- (UITableViewCell *)tableView:(UITableView *)tableView cellNewRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"RowCell"; 

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier]; 
    } 

    cell.backgroundColor = [UIColor colorWithRed:0.922 green:0.937 blue:0.949 alpha:1]; 

    switch (indexPath.row) { 

     case EmployeeOvertimeRow: 
      cell.textLabel.text = NSLocalizedString(@"Test", @"One"); 
      _datePicker = [[UIDatePicker alloc]init]; 
      _datePicker.datePickerMode = UIDatePickerModeTime; 
      //OLD: cell.accessoryView  = _datePicker; 
      //POST EDIT 
      [cell.contentView addSubview:_datePicker]; 

      break; 
     default: 
      break; 
    } 

    return cell; 
} 

Есть ли у кого-нибудь указания относительно того, что я делаю неправильно или как это исправить?

ответ

0

accessoryViewUITableViewCell, безусловно, не то, что вы думаете: это маленький вид справа от ячейки, как правило, это стрелка, и она довольно маленькая, а не ширина экрана вообще. Попробуйте добавить свой вид к contentView. Вам нужно будет установить большую высоту для вашей ячейки в методе heightForRowAtIndexPath.

+0

Спасибо, Эмилия, причина, по которой меня путают в аксессуаре, заключалась в том, что в другом месте кода (который я унаследовал) в представление аксессуаров ячейки была добавлена ​​UISwitch, поэтому я пытался реплицировать ее с помощью UIDataPicker , Я изменил строку нарушения: [cell.contentView addSubview: _datePicker]; Однако на данный момент у меня нет метода heightForRowAtIndexPath, просто метод heightForHeaderInSection, поэтому мне нужно будет изменить это. – narner

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