无论如何都要将文本对齐所有行的多行标签中心?

时间:2016-08-27 09:32:46

标签: ios objective-c uilabel

感谢您的时间。

以下是最终效果:

screenshot1

我正在使用多行标签(.textAligement = NSTextAlignmentCenter& .lineBreakMode = NSLineBreakByWordWrapping),到目前为止看起来像这样:screenshot1:)

以下是示例代码:

NSArray *detailTimePointsArray = @[@"08:00",@"08:05",@"08:10",@"08:15",@"08:20",
                                   @"08:25",@"08:30",@"08:35",@"08:40",@"08:45",
                                   @"08:50",@"08:55",@"09:00",@"09:05",@"09:10",
                                   @"09:15",@"09:20",@"09:25",@"10:00",@"10:05",
                                   @"10:10",@"10:15",@"10:20",@"10:25",@"10:35",
                                   @"10:40",@"10:45",@"10:50",@"10:55",@"11:25"];

UILabel *detailTimeInfoLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds))];
detailTimeInfoLabel.numberOfLines = 0;
detailTimeInfoLabel.textAlignment = NSTextAlignmentCenter;
detailTimeInfoLabel.lineBreakMode = NSLineBreakByWordWrapping;

detailTimeInfoLabel.text = [detailTimePointsArray componentsJoinedByString:@" "];

[self addSubview:detailTimeInfoLabel];

使用UICollectionView可能是一个更好的选择,但我徘徊是否有可能通过标签或其他更轻量级的控件来实现?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您尝试完成的任务称为文本对齐。 UILabel不支持它。

你可以尝试一些第三方文本工具包,但我个人会选择UICollectionView。这可能感觉有点过分,但至少在将来很容易设置和管理。