有没有办法获得与UILabel的当前内容相对应的图像,然后我可以使用和操作它就像是UIImage一样?例如,假设我在代码中使用modeStartMessageLabel UILabel来显示我有时会即时更改的消息。现在让我们想象一下我想要捕获modeStartMessageLabel当前的样子,然后在我使用的一些专门的图像处理中使用该图像。在那些算法中,我复制图像并将其位置变形为各种形状。
我认为能够将标签的内容视为与我的捆绑包中的myArt.png文件一样,这将是有趣和巧妙的。
UILabel * modeStartMessageLabel;
UIImageView *myArt = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myArt.png"]];
答案 0 :(得分:1)
-(UIImage *)getImageFromLabel:(UILabel *)label {
UIImage *imageFromLabel;
CGSize size = label.frame.size;
UIGraphicsBeginImageContextWithOptions(size, NO, 2);
[label.layer renderInContext:UIGraphicsGetCurrentContext()];
imageFromLabel = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return imageFromLabel;
}
答案 1 :(得分:0)
UIImage image;
UIGraphicsBeginImageContext (label.bounds.size);
[label drawViewHierarchyInRect:label.bounds afterScreenUpdates:NO];
image = UIGraphicsGetImageFromCurrentImageContext ();
UIGraphicsEndImageContext ();
这仅适用于iOS 7,速度非常快。
答案 2 :(得分:0)
不确定这是否适用于UILabel,但我不明白为什么它不会。
UIGraphicsBeginImageContext(label.bounds.size);
[[label layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
iOS 2.0支持此代码。