在superview中的NSString / UILabel中找到特定字符的CGPoint

时间:2014-11-19 17:20:36

标签: ios objective-c uilabel cgpoint

假设我有一个UILabel,文字是“Hello World”。如果我想找到'W'的CGPoint值,以便我可以在旧的'W'之上创建一个只有'W'的重复标签,我该怎么做?

1 个答案:

答案 0 :(得分:0)

在较高级别,您可以计算文本的大小。

UILabel *label = ... // label with "Hello World"
NSDictionary *attrs = @{ NSFontAttributeName : label.font };
CGSize size = [@"Hello " sizeWithAttributes:attrs];

CGPoint newOrigin = label.frame.origin;
newOrigin.x += size.width;

此时newOrigin应代表包含"W"的新标签的原始需求。

使用与原始标签相同的字体和高度创建新标签。使用newOrigin作为新标签的来源。

代码做了几个假设:

  1. label设置为左对齐
  2. label的字体大小合适(不要太高,不要太短,不要太窄 - 导致字体变小)
  3. 通过更多工作,可以消除这些假设。