簡體   English   中英

將UIView轉換為UIImage而不先顯示UIView?

[英]Convert UIView to UIImage without first displaying the UIView?

我正在尋找一種在我的應用程序的每個UITabBarItem中呈現兩行文本的方法,每行文本的大小和顏色都不同。 基於這個原因,我正在尋找一種使自定義TabBarItems變得容易的方法,其文本可以在應用程序中動態更新。 例如,一個按鈕可以在頂部和底部告訴用戶“菜單”,並在一天之內告訴用戶她剩下多少“票”(該數字將在會話期間響應用戶操作而改變)。

我認為一種明顯的方法是從UIViews中制作UITabBarItem自定義圖像。 我希望這是一種包含動態文本內容的自定義標簽欄按鈕的簡便且開銷較低的方法。 但是我一直找不到能夠將未顯示的UIView轉換為UIImage的方法。 我怎樣才能做到這一點?

關於將已經呈現的UIViews轉換為下面列出的圖像,有很多文章,但是在不顯示視圖的情況下,我找不到任何相關內容:

如果這根本不可能,那么我也將對通過動態生成的文本輕松地(自定義和計算方式)生成自定義按鈕的任何建議表示贊賞。 感謝您的任何建議!

您可以避免使用UIView並像這樣繪制UIImage。
如果您需要更多精美的文字,請嘗試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();

核心圖形在此表中非常靈活,因此您可以以相同的方式使用
UIImage及其將UIImage繪制到上下文中的方法
CoreText框架並繪制更復雜的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM