如何让文本在可滚动的 UILabel 中居中?

Posted

技术标签:

【中文标题】如何让文本在可滚动的 UILabel 中居中?【英文标题】:How can I get the text to center in my scrollable UILabel? 【发布时间】:2015-10-23 01:25:05 【问题描述】:

可滚动标签工作正常,但由于某种原因,我无法让 UILabel 中的文本在 UIScrollView 中居中,它始终保持左对齐。这是我正在谈论的图像和我的代码。 (P.S. UILabel 是 UIScrollView 的子视图,而 UIScrollView 是 UITableViewCell 的子视图。

    scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(cell.frame.size.width/21.5, 25, cell.frame.size.width - 40 , 20)];
    scrollView.showsHorizontalScrollIndicator = NO;
    [cell addSubview:scrollView];

    scrollLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, scrollView.frame.size.width, 20)];
    scrollLabel.text = secondaryLabel.text;
    scrollLabel.font = secondaryLabel.font;
    scrollLabel.backgroundColor = [UIColor clearColor];
    scrollLabel.textColor = [UIColor whiteColor];
    scrollLabel.numberOfLines = 1;
    scrollLabel.textAlignment = NSTextAlignmentCenter;
    [scrollLabel sizeToFit];
    [scrollView addSubview:scrollLabel];

    scrollView.contentSize = CGSizeMake(scrollLabel.frame.size.width, 20);

【问题讨论】:

你能把这行[scrollLabel sizeToFit];去掉,看看会发生什么? @anhtu 我试过了,现在它不再滚动了。 【参考方案1】:

我认为您为 UILabel 编写的代码非常正确,并且中心 TextAlignment 在那里,但问题是您需要为 UILabel 框架传递正确的 X 和 Y。现在它们被设置为 0-0 并添加到 Scrollview 的起始帧。这或许可以解决您的问题。

【讨论】:

以上是关于如何让文本在可滚动的 UILabel 中居中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Material UI TextField 中居中占位符和文本

如何滚动 UIlabel 文本并在目标 c 中动态设置它的宽度和高度

如何将 UITextField 数据复制到 UILabel

如何使 UITableViewCell contentview mask UILabel 创建核心动画滚动文本

如何修复 UILabel 文本间距?

如何在 d3 的 rect 元素中居中文本?