ビューにラベルがあり、この特定の文字のすぐ下に矢印を配置したいと思います。
どうやってやるの?
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;
ラベルの端から追加のオフセットがありますが、それはラベルテキストの先頭からのラベルの端の距離によって異なります。適切な値が見つかるまで実験してください。
これを試してみてください..これはあなたを助けるかもしれません.私は別のラベルをポインタとして取っています.
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.
UIKit には、指定されたフォントの文字列のサイズを取得するための NSString に関するカテゴリがあります。完全な文字列のサイズを取得し、次に対象の文字までの文字列を取得し、次にその文字を含むサイズを取得します。
その後、文字列全体の位置 (左、右、または中央) を見つけることができます。x 位置は、他の 2 つの部分文字列の値の間の中央に配置されます。