将文本放置在PNG图像iOS开发上

时间:2014-03-30 06:07:21

标签: ios objective-c xcode uitableview

所以我有一个应用程序需要图像中的一些基于文本的数据,如日历应用程序,其中显示用户输入的日历和一些用户输入文本,它将出现在图像中。我知道它是一个NSString或某种类型,但我还不知道的是我如何实现这一点。这是一个例子:

User Text

正如您在此日历应用中看到的那样,用户设置了一个提醒,其中显示数据,我想要做的是放置其他数据,如图像本身。

另一件事是我如何将这种图像添加到应该在图像正下方显示UITableView的应用程序?

有关如何完成此任务的任何精彩教程?该图像应该是可编辑的,这意味着它可以像iPhone上的图标一样被删除,如果我点击编辑,它将显示一个删除图标。

1 个答案:

答案 0 :(得分:0)

要向图像添加文字,您可以使用此方法:

- (UIImage *)image:(UIImage *)image withText:(NSString *)text ofFont:(UIFont *)font inFrame:(CGRect)textFrame {
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0f);

    NSDictionary *textAttributes = @{
        NSFontAttributeName: font
    };

    [text drawInRect:textFrame withAttributes:textAttributes];

    UIImage* imageWithText = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return imageWithText;
}

用法示例:

// Get some image from somewhere
UIImage *someImage = ...;

// The text that will be shown on the image
NSString *text = @"Some text"; 

// Font of text
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Thin" size:17.0]; 

// Location of text
CGRect textFrame = CGRectMake(0, 0, 200, 20); 

// Get result image with text
UIImage *someImageWithText = [self image:someImage withText:text ofFont:font inFrame:textFrame];

// Show result image within UIImageView
_imageView.image = someImageWithText;