-1

我认为我有一个标签,我想在这个特定的字母下面放一个箭头。

我怎样才能做到这一点?

4

3 回答 3

1

试试这个..这可能会对你有所帮助。我将另一个标签作为指针。

CGSize size_txt_overview1;
CGSize constraint = CGSizeMake(180, 20000.0f);
for (int i=0; i< [_Heading_lbl.text length]; i++) {
    if ([Lbl_Heading.text characterAtIndex:i] == '8') { // i have taken 8 as my target charecter
        NSString *str = [Lbl_Heading.text substringToIndex:i];
        size_txt_overview1 = [str sizeWithFont:[UIFont fontWithName:@"Arial Rounded MT Bold" size:17] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
        NSLog(@"%f",size_txt_overview1.width);
    }
}
Lbl_Arrow.frame = CGRectMake(SomeNum+size_txt_overview1.width, 140, 18, 21);//SomeNum is the X position of Your lable.
于 2012-11-17T13:13:00.160 回答
1

您可以使用NSAttributedString来获取给定字体的字符串大小。

NSString* labelString = @"cheese toast";
// Say you want the first 't'
NSString* stringUpToLetterPosition = @"cheese t";

NSDictionary* attributes = [NSDictionary dictionaryWithObjectsAndKeys:
    @"** Name of Label's Font **", NSFontNameAttribute,
    [NSNumber numberWithFloat:aTextLayer.fontSize], NSFontSizeAttribute,
    nil];
NSAttributedString* attributedString = [[NSAttributedString alloc] initWithString:stringUpToLetterPosition attributes:attributes];
NSSize size = attributedString.size;

从标签的边缘会有一个额外的偏移量,但这会根据标签边缘与标签文本开头的距离而有所不同。只需进行试验,直到找到正确的值。

于 2012-11-17T13:03:09.627 回答
0

UIKit 在 NSString 上有一个类别来获取具有指定字体的字符串的大小。获取完整字符串的大小,然后获取到感兴趣的字符的字符串,然后获取包含字符的字符串。

然后,您可以找到完整字符串的位置(左、右或居中)。x 位置将在其他两个部分字符串的值之间居中。

于 2012-11-17T13:13:55.110 回答