2
나는 CATextLayer를 만들고있는 UIView에 그것을 그리는 코드가 있습니다보기를 렌더링 할 때 문자가 부분적으로 차단하는
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
CGRect viewRect = CGRectMake(50.0f, 50.0f, 345.0f, 120.0f);
CATextLayer *textLayer = [CATextLayer layer];
textLayer.contentsScale = [[UIScreen mainScreen] scale];
textLayer.wrapped = YES;
textLayer.truncationMode = kCATruncationNone;
UIFont *font = [UIFont fontWithName:@"SnellRoundhand" size:20.0f];
textLayer.string = @"Lorem Lipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.";
textLayer.alignmentMode = kCAAlignmentLeft;
textLayer.fontSize = font.pointSize;
CTFontRef fontRef = CTFontCreateWithName((__bridge CFStringRef)font.fontName, font.pointSize, nil);
textLayer.font = fontRef;
CFRelease(fontRef);
textLayer.backgroundColor = [[UIColor lightGrayColor] CGColor];
textLayer.foregroundColor = [[UIColor blackColor] CGColor];
textLayer.frame = viewRect;
UIGraphicsBeginImageContextWithOptions(textLayer.frame.size, NO, 0);
[textLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *textImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *textImageView = [[UIImageView alloc] initWithImage:textImage];
textImageView.frame = viewRect;
[self.view addSubview:textImageView];
}
불행하게도, 일부 문자가 차단됩니다. 내가 게시 한 예에서 처음에 'L'은 가장 왼쪽 픽셀을 잃어 버렸고 두 번째 끝에 'd'는 가장 오른쪽 픽셀을 잃어 버렸습니다.
텍스트가 줄 바꿈되는 방식을 변경하지 않고 이러한 컷오프가 발생하지 않도록하는 방법이 있습니까?