У меня есть UILabel
с атрибутной строкой, которую пользователь редактирует и в конечном итоге рисует изображение. Вот как я обновляю UILabel
каждый раз, когда пользователь меняет текст в UITextview
и подтверждает.AttributedString иногда не удалось нарисовать, используя drawInRect
- (void)displayPicture {
[self.view endEditing:YES];
self.attributedStr = [[NSAttributedString alloc] initWithString:self.textInputField.text attributes:self.attributes];
self.displayField.attributedText = [[NSAttributedString alloc] initWithString:self.textInputField.text attributes:self.attributes];
self.displayField.lineBreakMode = NSLineBreakByCharWrapping;
[self.displayField sizeToFit];
[self.displayField setNeedsDisplay];
self.textInputField.hidden = YES;
self.tapRecog.enabled = YES;
self.displayField.hidden = NO;
}
В настоящее время UILabel
отображает то, как желательно на экране.
Когда пользователь хочет Pic + текст в сочетании с UIImage и отправил, следующий код реализован:
- (UIImage *)generatePicture {
UIGraphicsBeginImageContextWithOptions(CGSizeMake(Picture_Standard_Width, Picutre_Standard_Height), YES, 0.0f);
[self.bgImageView.image drawInRect:CGRectMake(0, 0, Picture_Standard_Width, Picutre_Standard_Height)];
CGRect originalFrame = self.displayField.frame;
CGRect adjustedFrame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y - self.bgImageView.frame.origin.y, originalFrame.size.width, originalFrame.size.height);
[self.displayField.attributedText drawInRect:adjustedFrame];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
self.imageToUpload = newImage;
UIGraphicsEndImageContext();
return self.imageToUpload;
}
Большинство раз приписываемых показывает только одну или две строки в формируемого изображения. Вероятно, это может иметь какое-то отношение к кадру. Меня просто смущает тот факт, что атрибутная строка хорошо отображается в ярлыке и по-разному, когда я рисую ее.
Будем очень благодарны за помощь в использовании атрибута, нарисованной правильно.