由於最近常用富文字, 在編輯乙個富文字時需要操作很多的屬性, 書寫起來很不方便. 所以我將這些相關屬性整理並使用鏈式方式將它簡化了一下. 效果請看下面demo.
專案工程 實現很簡單, 我嘴太笨, 這裡就不介紹了, 如有興趣直接看原始碼吧. 同時可以通過cocoapods
來使用它.
pod 'sjattributesfactory'
附關於富文字的一些屬性.
之前:
// 文字字典
nsdictionary *titledict = @;
nsdictionary *spacingdict = @;
// 文字
nstextattachment *attachment = [[nstextattachment alloc] init];
attachment.image = image;
attachment.bounds = cgrectmake(0, 0, imagew, imageh);
nsattributedstring *imagetext = [nsattributedstring attributedstringwithattachment:attachment];
// 換行文字
nsattributedstring *linetext = [[nsattributedstring alloc] initwithstring:@"\n\n" attributes:spacingdict];
// 按鈕文字
nsattributedstring *text = [[nsattributedstring alloc] initwithstring:title attributes:titledict];
// 合併文字
nsmutableattributedstring *attm = [[nsmutableattributedstring alloc] initwithattributedstring:imagetext];
現在:
之前:
nsstring *str = @"故事:可以解釋為舊事、舊業、先例、典故等涵義,同時,也是文學體裁的一種,側重於事情過程的描述,強調情節跌宕起伏,從而闡發道理或者價值觀。";
nsmutableattributedstring *attrm = [[nsmutableattributedstring alloc] initwithstring:str];
[attrm addattribute:nsfontattributename
value:[uifont boldsystemfontofsize:14]
range:nsmakerange(0, 3)];
nsmutableparagraphstyle *style = [nsmutableparagraphstyle new];
style.firstlineheadindent = 8;
style.headindent = [[attrm attributedsubstringfromrange:nsmakerange(0, 3)]
boundingrectwithsize:cgsizemake(cgfloat_max, cgfloat_max)
options:nsstringdrawinguseslinefragmentorigin | nsstringdrawingusesfontleading
context:nil].size.width + style.firstlineheadindent;
style.tailindent = -8;
[attrm addattribute:nsparagraphstyleattributename
value:style
range:nsmakerange(0, str.length)];
現在:
[sjattributesfactory alteringstr:@"故事:可以解釋為舊事、舊業、先例、典故等涵義,同時,也是文學體裁的一種,側重於事情過程的描述,強調情節跌宕起伏,從而闡發道理或者價值觀。" task:^(sjattributesfactory * _nonnull worker) ];
之前:
nsstring *price = @"$ 999";
nsmutableattributedstring *attrm = [[nsmutableattributedstring alloc] initwithstring:price];
nsrange range = nsmakerange(0, price.length);
[attrm addattribute:nsfontattributename
value:[uifont systemfontofsize:40]
range:range];
[attrm addattribute:nsunderlinestyleattributename
value:@(nsunderlinebyword | nsunderlinepatternsolid | nsunderlinestyledouble)
range:range];
[attrm addattribute:nsunderlinecolorattributename
value:[uicolor yellowcolor]
range:range];
[attrm addattribute:nsstrikethroughstyleattributename
value:@(nsunderlinebyword | nsunderlinepatternsolid | nsunderlinestyledouble)
range:range];
[attrm addattribute:nsstrikethroughcolorattributename
value:[uicolor redcolor]
range:range];
現在:
ios富文字編輯
最近的專案要用到富文字編輯來實現其中的修改文件功能。先是在github是找了一些editor,效果都不是很滿意,多是使用coretext來實現的,但attribute text與html的轉換十分繁鎖,所找到的控制項只有外讀時轉化為html的方法,而沒有載入時轉換到attribute text的方法...
富文字編輯
關於字型方面,見 font。下面就是找到的一些免費開源的富文字外掛程式比較。以下僅供參考。文件上說,quill 是乙個為相容性和可擴充套件性而構建的所見即所得的現代編輯器。截至 2019.12.12,仍然處於有人維護狀態,結合上面的考慮點,有下面的一些個人體會。好的方面 不好的方面 文件上說,sum...
tinymce vue 富文字編輯
用texterea最多支援換行,如果文字資訊想要更加豐富一些,比如增加格式樣式,比如增加,textarea就愛莫能助了 在網上搜尋了一番,發現tinymce是比較方便好用的一款富文字編輯 官網1.富文字rich text editor在增刪查改四個操作下,只有增和改是需要出現具體的工具欄的,在檢視的...