如何让文本在可滚动的 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 中动态设置它的宽度和高度