NSString
或 NSMutableStrings
中的多种颜色是不可能的 . 所以我听说 iPad SDK 3.2 引入了 iPad SDK 3.2 (或大约3.2),并且在 iPhone SDK 4.0 beta 的iPhone上可用 .
我想要一个有三种颜色的字符串 .
我不使用3个单独的NSStrings的原因是因为三个 NSAttributedString
子串中的每一个的长度经常变化,所以我更喜欢,不使用任何计算来重新定位3个单独的 NSString
对象 .
如果可以使用 NSAttributedString
如何进行以下操作 - (如果不能使用NSAttributed字符串,你会怎么做):
Edit: 请记住, @"first"
, @"second"
和 @"third"
将随时被其他字符串替换 . 因此,使用硬编码的NSRange值将不起作用 .
15 回答
该解决方案适用于任何长度
在构建属性字符串时,我更喜欢使用可变子类,只是为了保持清洁 .
话虽如此,这里是你如何创建一个三色属性字符串:
在浏览器中输入 . 警告实施者
显然你不会在这样的范围内进行硬编码 . 也许你可以这样做:
这个问题已经回答了......但我想展示如何添加阴影并使用NSAttributedString更改字体,这样当人们搜索这个主题时,他们就不必继续寻找 .
这是一个Swift版本......
警告!这适用于4s .
对于5s,您必须将所有Float值更改为Double值(因为编译器尚未正常工作)
用于字体选择的Swift枚举:
用于枚举访问的Swift数组(因为枚举不能使用' - '而需要):
Swift归因于文本功能:
用于查找字符串数组中范围的第一个和最后一个扩展名:
新颜色:
我的宏替换:
我的按钮制造商w /归因文字:
我的UIView / UILabel制造商w /归因于文字,阴影和圆角:
通用阴影添加:
查看视图样式的扩展名:
实际视图加载功能:
我认为,使用
regular expressions
查找应用属性的范围是一种非常方便的方法 . 我就这样做了:我正在搜索可用属性的列表,但在这里和类引用的第一页中找不到它们 . 所以我决定在这里发布相关信息 .
Standard Attributes
归属字符串支持文本的以下标准属性 . 如果密钥不在字典中,则使用下面描述的默认值 .
NSAttributedString programming guide
完整的类引用是here .
我写了帮助器来轻松添加属性:
https://github.com/shmidt/MASAttributes
您也可以通过CocoaPods安装:
pod 'MASAttributes', '~> 1.0.0'
从iOS 7开始,您可以使用带有HTML语法的
NSAttributedString
:您必须将文件“string.html”添加到您的项目中,并且html的内容可以是这样的:
现在,您可以根据需要使用
NSAttributedString
,即使没有HTML文件,例如:Source
我总是发现使用归因字符串是一个令人难以置信的漫长而乏味的过程 .
所以我制作了一个Mac应用程序,为您创建所有代码 .
https://itunes.apple.com/us/app/attributed-string-creator/id730928349?mt=12
使用属性字符串扩展的简单解决方案
试试这个看看(在Swift 3和4中测试过)
这是预期的结果:
在Swift 4中:
您可以在
Swift
中加载HTML
属性字符串,如下所示从文件加载
html
http://sketchytech.blogspot.in/2013/11/creating-nsattributedstring-from-html.html
并根据您所需的属性设置字符串....按照这个..
http://makeapppie.com/2014/10/20/swift-swift-using-attributed-strings-in-swift/
我创建了一个库,使这更容易 . 退房ZenCopy.
您可以创建Style对象,和/或将它们设置为键以便稍后引用 . 像这样:
然后,你可以轻松地构造字符串和样式他们并有params :)
您还可以使用正则表达式搜索轻松设置样式!
这将使用'token'样式在其前面加上'@'的所有单词 . (例如@jpmcglone)
我需要仍然能够使用
NSAttributedString
提供的所有功能,但我认为fontName
,fontSize
和颜色覆盖了它的大部分内容 . 期待很快更新:)如果您需要,我可以帮助您开始使用它 . 也在寻找反馈,如果它能让你的生活更容易,我说任务完成了 .
为了解决这类问题,我在swift中创建了一个名为Atributika的库 .
你可以在这里找到它https://github.com/psharanda/Atributika
Swift 4
Attributes list please see here NSAttributedStringKey on Apple Docs
超级简单的方法来做到这一点 .
有关详细信息,请单击此处https://github.com/iOSTechHub/AttributedString