ด้วย swiftyattributes คุณสามารถสร้างสตริงที่มีการรวมเช่น:
let fancyString = " Hello World! " . withTextColor ( . blue ) . withUnderlineStyle ( . styleSingle ) หรือใช้ Attribute enum:
let fancyString = " Hello World! " . withAttributes ( [
. backgroundColor ( . magenta ) ,
. strokeColor ( . orange ) ,
. strokeWidth ( 1 ) ,
. baselineOffset ( 5.2 )
] )นอกจากนี้คุณยังสามารถรวมสตริงที่มีการระบุได้อย่างง่ายดายโดยใช้เครื่องหมายบวก:
let fancyString = " Hello " . withFont ( . systemFont ( ofSize : 12 ) ) + " World! " . withFont ( . systemFont ( ofSize : 18 ) )Swiftyattributes มีการสนับสนุน ทุก คุณลักษณะที่มีอยู่ใน Cocoa และ Cocoa Touch
dependencies: [
. package ( url : " https://github.com/eddiekaiger/SwiftyAttributes.git " , from : " 5.3.0 " )
] pod 'SwiftyAttributes'
github "eddiekaiger/SwiftyAttributes"
การเริ่มต้นสตริงที่เกิดจาก SwiftyAttributes สามารถทำได้หลายวิธี:
การใช้ส่วนขยาย with[Attribute] :
" Hello World " . withUnderlineColor ( . red ) . withUnderlineStyle ( . styleDouble ) การใช้ส่วนขยาย enum Attribute :
" Hello World " . withAttributes ( [ . underlineColor ( . red ) , . underlineStyle ( . styleDouble ) ] ) การใช้ Attribute enum ใน initializer:
NSAttributedString ( string : " Hello World " , swiftyAttributes : [ . kern ( 5 ) , . backgroundColor ( . gray ) ] ) คุณสามารถดึงแอตทริบิวต์ที่ตำแหน่งเฉพาะโดยใช้ NSAttributedString.Key enum ในตัว:
let attr : Attribute ? = myAttributedString . swiftyAttribute ( . shadow , at : 5 ) มีวิธีการ API หลายวิธีในการใช้ enums ใหม่เหล่านี้รวมถึงประเภท Range ของ Swift แทน NSRange ลายเซ็นวิธีการบางอย่างรวมถึง:
extension NSMutableAttributedString {
func addAttributes ( _ attributes : [ Attribute ] , range : Range < Int > )
func addAttributes ( _ attributes : [ Attribute ] , range : NSRange )
func setAttributes ( _ attributes : [ Attribute ] , range : Range < Int > )
func setAttributes ( _ attributes : [ Attribute ] , range : NSRange )
func replaceCharacters ( in range : Range < Int > , with str : String )
func replaceCharacters ( in range : Range < Int > , with attrString : NSAttributedString )
func deleteCharacters ( in range : Range < Int > )
func removeAttribute ( _ name : NSAttributedStringKey , range : Range < Int > )
}
extension NSAttributedString {
convenience init ( string str : String , swiftyAttributes : [ Attribute ] )
func withAttributes ( _ attributes : [ Attribute ] ) -> NSMutableAttributedString
func withAttribute ( _ attribute : Attribute ) -> NSMutableAttributedString
func attributedSubstring ( from range : Range < Int > ) -> NSAttributedString
func swiftyAttribute ( _ attrName : NSAttributedStringKey , at location : Int , effectiveRange range : NSRangePointer ? = nil ) -> Attribute ?
func swiftyAttributes ( in range : Range < Int > , options : NSAttributedString . EnumerationOptions = [ ] ) -> [ ( [ Attribute ] , Range < Int > ) ]
func enum erateSwiftyAttributes ( in enum erationRange : Range < Int > , options : NSAttributedString . EnumerationOptions = [ ] , using block : ( _ attrs : [ Attribute ] , _ range : Range < Int > , _ stop : UnsafeMutablePointer < ObjCBool > ) -> Void )
func enum erateSwiftyAttribute ( _ attrName : NSAttributedStringKey , in enum erationRange : Range < Int > , options : NSAttributedString . EnumerationOptions = [ ] , using block : ( _ value : Any ? , _ range : Range < Int > , _ stop : UnsafeMutablePointer < ObjCBool > ) -> Void )
}
extension String {
var attributedString : NSMutableAttributedString
func withAttributes ( _ attributes : [ Attribute ] ) -> NSMutableAttributedString
func withAttribute ( _ attribute : Attribute ) -> NSMutableAttributedString
}
// ... and more!สำหรับคำถามการสนับสนุนและข้อเสนอแนะโปรดเปิดปัญหา
Swiftyattributes มีอยู่ภายใต้ใบอนุญาต MIT ดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม