我正在寻找一种方法,在我的应用的每个UITabBarItem中呈现两行不同大小和颜色的文本。出于这个原因,我正在寻找一种方法来制作简单的自定义TabBarItems,其文本可以在应用程序中动态更新。例如,一个按钮可以告诉用户"菜单"在顶部和底部告诉用户有多少"投票"她已经离开了一天(这个数字会在会议期间因用户行为而改变)。
我认为一个明显的方法是从UIViews中制作UITabBarItem自定义图像。我希望这可以是一种简单且低开销的方式,包括带有动态文本内容的自定义标签栏按钮。但我还没有找到一种方法将非呈现的UIView转换为UIImage。我怎么能这样做?
有许多关于将已呈现的UIViews转换为下面列出的图像的帖子,但我还没有找到任何关于转换视图而不显示它的信息:
如果这根本不可能,我也很感激任何建议,可以轻松(编码方式和计算)生成动态生成文本的自定义按钮。谢谢你的任何建议!
答案 0 :(得分:0)
您可以避免使用UIView并像这样绘制UIImage。
如果您需要更多fency文本,请尝试NSAttributedString
。
UIGraphicsBeginImageContext(CGRect(0,0,200,200);
[[UIColor redColor] setFill];
UIFont *font = [UIFont systemFontOfSize:18.0];
NSString * text = @"A text";
[text drawAtPoint:CGPointMake(0, 0) withFont: font];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
核心图形在这个metter中非常灵活,所以你可以使用相同的方式
UIImage
以及将UIImage绘制到上下文中的方法
或CoreText
框架并绘制更复杂的东西。