Я знаю, как выровнять текст в UILabel. Но эта проблема немного связана. Все остальные работы выравнивания, такие как NSTextAlignmentJustified
, NSTextAlignmentNatural
. Только NSTextAlignmentCenter
не работает, чтобы сделать текст в центре. Мой UILabel вставлен с помощью StoryBoard. Затем форматирование текста в UILabel реализован в программе, какTextAlignment at UILabel
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"CustomCell" forIndexPath:indexPath];
CGRect frame = cell.cellText.frame;
frame.size.width = cell.bounds.size.width;
frame.size.height = cell.bounds.size.height;
cell.cellText.frame = frame;
cell.cellText.font = [UIFont fontWithName:@"ArialMT" size:screenRect.size.height*0.0163];
cell.cellText.textAlignment = NSTextAlignmentCenter;
cell.cellText.lineBreakMode = NSLineBreakByWordWrapping;
cell.cellText.numberOfLines = 0;
cell.cellText.clipsToBounds = YES;
cell.cellText.backgroundColor = [UIColor clearColor];
cell.cellText.textColor = [UIColor blackColor];
if(indexPath.section == 0){
cell.backgroundColor=[UIColor blackColor];
cell.cellText.textColor = [UIColor whiteColor];
if(indexPath.item == 0)
cell.cellText.text = @"Date";
else if(indexPath.item == 1)
cell.cellText.text = @"Age";
else if(indexPath.item == 2)
cell.cellText.text = @"Height (cm)";
else if(indexPath.item == 3)
cell.cellText.text = @"%le";
else if(indexPath.item == 4)
cell.cellText.text = @"Weight (kg)";
else if(indexPath.item == 5)
cell.cellText.text = @"%le";
}
else if(indexPath.section % 2 == 0 && indexPath.section != 0)
cell.backgroundColor=[UIColor grayColor];
else
cell.backgroundColor=[UIColor lightGrayColor];
return cell;
}
Почему нельзя выровнять по центру, как показано на рисунке.
EDIT: Я изменил фон в UILabel как
if(indexPath.section == 0){
cell.backgroundColor=[UIColor blackColor];
cell.cellText.textColor = [UIColor whiteColor];
cell.cellText.backgroundColor = [UIColor redColor];
if(indexPath.item == 0)
cell.cellText.text = @"Date";
else if(indexPath.item == 1)
cell.cellText.text = @"Age";
else if(indexPath.item == 2)
cell.cellText.text = @"Height (cm)";
else if(indexPath.item == 3)
cell.cellText.text = @"%le";
else if(indexPath.item == 4)
cell.cellText.text = @"Weight (kg)";
else if(indexPath.item == 5)
cell.cellText.text = @"%le";
}
вы можете попытаться установить цвет фона Текст_ячейки на красный или Буле, чтобы увидеть это кадр? –
проверить, что ваш фрейм этикетки в соответствии с @CongTran - комментарий полезен для вас –
@Cong Tran, я обновил в Редактировать, спасибо – batuman