• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 属性字符串

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:16:39 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

a text that has some part with yellow background我需要在黄色文本的左侧和右侧进行一些填充,并且需要将标签“3”作为中心。我正在使用属性文本。任何人都可以帮我解决这个问题。下面是我正在使用的代码。附加截图为好吧。

string CardTileText = "3 Shared Documents";
NSAttributedString decoratedText = CardTileText.GetAttributedStringFromHtml("#ffe601","3");


  public static NSAttributedString GetAttributedStringFromHtml(this string source, UIColor color, string identifier)
        {
            var atts = new UIStringAttributes();
            UIFont newConnFont = UIFont.FromName("NotoSans-Bold", 16);
            NSRange range = GetRangeFor(source, identifier);
            NSNumber offset = 5;

            NSMutableParagraphStyle para = new NSMutableParagraphStyle
            {
                Alignment = UITextAlignment.Left
            };
            NSMutableAttributedString attributedString = new NSMutableAttributedString(source, atts);
            attributedString.AddAttribute(UIStringAttributeKey.BackgroundColor, color, range);
            attributedString.AddAttribute(UIStringAttributeKey.ForegroundColor, UIColor.Black, range);
            attributedString.AddAttribute(UIStringAttributeKey.Font, newConnFont, range);
            attributedString.AddAttribute(UIStringAttributeKey.KerningAdjustment, offset, range);
            attributedString.AddAttribute(UIStringAttributeKey.ParagraphStyle, para, range);

            return attributedString;
        }

        static NSRange GetRangeFor(string source, string substring)
        {
            var range = new NSRange
            {
                Location = source.IndexOf(substring, StringComparison.Ordinal),
                Length = substring.Length
            };
            return range;
        }



Best Answer-推荐答案


恐怕唯一的解决方案是设置 offset(在 KerningAdjustment 上使用)具有适当的值。

对比

  • 偏移量 = 0.5

enter image description here

  • 偏移量 = 10

enter image description here

关于ios - 属性字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47247106/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap