Выравнивание текста UITableViewCell и перекрытие вложенным представлением

#iphone #objective-c #uitableview

#iPhone #objective-c #uitableview

Вопрос:

Я работаю над приложением списка задач. Однако, похоже, я не могу правильно выровнять изображение моего флажка с ячейкой.textLabel.text.

Моя проблема с приведенным ниже кодом заключается в том, что слова «test test» были закрыты моим изображением флажка, на котором осталось только «st test»

Мой код для изображения кнопки checkbox похож

 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(5.0, 7.0, 25.0, 25.0)];

UIImage *uncheckedButtonImage = [UIImage imageNamed:@"unchecked_checkbox.png"];

[button setImage:uncheckedButtonImage forState:UIControlStateNormal];

[cell.contentView addSubview:button];
  

и текстовая метка моей ячейки просто

 cell.textLabel.text = @"test test";
  

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

Комментарии:

1. почему бы не использовать UILabel в качестве представления и не добавить его в ячейку, у вас будет больше контроля над ним.

Ответ №1:

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

взгляните на следующий фрагмент кода:

     CGRect DeviceNameFrame = CGRectMake(101, 32, 522, 21);

    UILabel *lblDeviceName = [[UILabel alloc] initWithFrame:DeviceNameFrame];   
    lblDeviceName.backgroundColor = [UIColor clearColor];
    lblDeviceName.font = [UIFont fontWithName:@"Helvetica-Bold" size:17];
    lblDeviceName.text =  @"test test";
    lblDeviceName.lineBreakMode = UILineBreakModeMiddleTruncation;
    [cell.contentView addSubview:lblDeviceName];
    [lblDeviceName release];
  

Я надеюсь, что это поможет вам.

Комментарии:

1. привет, Ахмад, если я использую это решение, то при «пролистывании для удаления» кнопка удаления будет перекрываться текстом в uitableviewcell. Знаете ли вы какой-либо обходной путь для этого?

2. @lucas: Вы хотите, чтобы UILabel был над кнопкой удаления при пролистывании?

Ответ №2:

Самым простым решением было бы посмотреть на свойства «Отступ» UITableViewCell. Смотрите документацию для получения дополнительной информации. Однако выделение подкласса ячейки и добавление собственной UILabel даст вам наибольший контроль.