计算文本在居中对齐的位置开始
Calculate where text starts on centre alignment
我有一个 UILabel
,我想在文本开始的地方添加一个 UIView
。
问题是标签中的文本与中心对齐,所以我不知道如何确定实际文本的开始位置以及放置此文本的位置 UIView
。
知道如何计算这个东西吗?
谢谢!
您可以使用 UIView
容器来包裹 UILabel
和您的新 UIView
。然后你可以让 UILabel
根据它的内容决定宽度并将它设置在容器的中心。完成此工作后,您只需阅读 UILabel
x 即可了解它从哪里开始。
所以 UILabel
将有 top
、bottom
的约束,你想要的高度和中心到水平,而小的 UIView
到 top
、bottom
、height
、width
和 leading
等于 UILabel
发件人:How to find the position(x,y) of a letter in UILabel
NSRange range = [@"Good,Morning" rangeOfString:@","];
NSString *prefix = [@"Good,Morning" substringToIndex:range.location];
CGSize size = [prefix sizeWithFont:[UIFont systemFontOfSize:18]];
CGPoint p = CGPointMake(size.width, 0);
NSLog(@"p.x: %f",p.x);
NSLog(@"p.y: %f",p.y);
您可以根据自己的目的修改它
您可以使用 "nsattributedstring"
获取文字大小
let label = UILabel(frame: CGRectMake(0, 0, 100, 100))
label.text = "dshfk,j"
label.textAlignment = .Center
label.textColor = UIColor.redColor()
let string = label.attributedText
let width = string!.size().width
let height = string!.size().height
let view = UIView(frame: CGRectMake(width, height, width, height))
view.backgroundColor = UIColor.blackColor()
然后你可以用这个找到rect..
示例视图
您也可以使用
yourLabel.sizeToFit()
根据需要自动调整标签大小 space。然后读出标签的框架:
yourLabel.frame.size (width or height)
我有一个 UILabel
,我想在文本开始的地方添加一个 UIView
。
问题是标签中的文本与中心对齐,所以我不知道如何确定实际文本的开始位置以及放置此文本的位置 UIView
。
知道如何计算这个东西吗?
谢谢!
您可以使用 UIView
容器来包裹 UILabel
和您的新 UIView
。然后你可以让 UILabel
根据它的内容决定宽度并将它设置在容器的中心。完成此工作后,您只需阅读 UILabel
x 即可了解它从哪里开始。
所以 UILabel
将有 top
、bottom
的约束,你想要的高度和中心到水平,而小的 UIView
到 top
、bottom
、height
、width
和 leading
等于 UILabel
发件人:How to find the position(x,y) of a letter in UILabel
NSRange range = [@"Good,Morning" rangeOfString:@","];
NSString *prefix = [@"Good,Morning" substringToIndex:range.location];
CGSize size = [prefix sizeWithFont:[UIFont systemFontOfSize:18]];
CGPoint p = CGPointMake(size.width, 0);
NSLog(@"p.x: %f",p.x);
NSLog(@"p.y: %f",p.y);
您可以根据自己的目的修改它
您可以使用 "nsattributedstring"
获取文字大小let label = UILabel(frame: CGRectMake(0, 0, 100, 100))
label.text = "dshfk,j"
label.textAlignment = .Center
label.textColor = UIColor.redColor()
let string = label.attributedText
let width = string!.size().width
let height = string!.size().height
let view = UIView(frame: CGRectMake(width, height, width, height))
view.backgroundColor = UIColor.blackColor()
然后你可以用这个找到rect..
示例视图
您也可以使用
yourLabel.sizeToFit()
根据需要自动调整标签大小 space。然后读出标签的框架:
yourLabel.frame.size (width or height)