如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor

Posted

技术标签:

【中文标题】如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor【英文标题】:How to convert from UIColor to string and string to UIColor in Xamarin.Ios using c# 【发布时间】:2016-12-15 10:35:02 【问题描述】:
UILabel label = new UILabel();

 label.TextColor = UIColor.Black;

如何以字符串格式存储 UILabel 颜色?我想从数据库中获取该颜色并应用于 UILabel。如何使用 c# 将 UIColor 转换为字符串和字符串转换为 UIColor?

提前致谢!

【问题讨论】:

【参考方案1】:

首先将颜色存储在 DB 中作为 UIColor 像这样

 string color = yourBtn.BackgroundColor.ToString();

然后将您的颜色转换为 UIColor as

 string hex = color.;
 nfloat red = Convert.ToInt32(string.Format("00",hex.Substring(0, 1)), 16) / 255f;
 nfloat green = Convert.ToInt32(string.Format("00",hex.Substring(1, 1)), 16) / 255f;
 nfloat blue = Convert.ToInt32(string.Format("00",hex.Substring(2, 1)), 16) / 255f;
 UIColor color = UIColor.FromRGB(red, green, blue);

您需要将字符串分成 3 个子字符串以获得红、绿、蓝颜色代码。

【讨论】:

【参考方案2】:

可以使用8char的十六进制颜色格式(如#ff0a11ff)

当您加载/保存字符串时,只需将其解析为字节数组或整数数组,因为 UILabel.FromRGBA 允许您从中创建颜色:https://developer.xamarin.com/api/member/MonoTouch.UIKit.UIColor.FromRGBA/p/System.Int32/System.Int32/System.Int32/System.Int32/

(很抱歉给出一个anwser而不是评论,我没有足够的声誉)

【讨论】:

正确,关于***.com/questions/10310917/…的一篇很好的***帖子@

以上是关于如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Xamarin iOS 应用程序中将文本共享到电子邮件或短信中

如何在 Xamarin iOS 中将 CGBitmap 的像素数据作为字节 [] 获取

如何隐藏数字键盘,我使用的是 Xamarin iOS (C#)

如何让 UIView / Menu 滑入和滑出? (使用 C# 而不是 Swift 的 Xamarin IOS)

如何从 C++ 为 Xamarin.Android 创建 C# DLL

使用 Xamarin.iOS (C#) 在 iOS 中进行后台处理:我应该使用哪种方法?