iOS 輸入內(nèi)容時(shí)UITextView的行間距等屬性設(shè)置

先直接上成功的代碼径玖,從一個(gè)帖子里查到的。

//當(dāng)將要編輯的時(shí)候颤介,先執(zhí)行這個(gè)代理方法梳星,之后輸入的內(nèi)容也就有了行間距赞赖。
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {    
    // 當(dāng)沒(méi)有字符時(shí)要先臨時(shí)填充一個(gè)字符,再設(shè)置屬性才能有效
    if (textView.text.length < 1) {
        textView.text = @"間距"; 
    }
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = 5; // 字體的行間距
    NSDictionary *attributes = @{
                                 NSFontAttributeName:[UIFont systemFontOfSize:14],
                                 NSParagraphStyleAttributeName:paragraphStyle,
                                 NSKernAttributeName:@1.2f,
                                 };
    textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes];
    // 刪除臨時(shí)字符
    if ([textView.text isEqualToString:@"間距"]) { 
        textView.attributedText = [[NSAttributedString alloc] initWithString:@"" attributes:attributes];//主要是把“間距”兩個(gè)字給去了冤灾。
    }
    return YES;
}

注意:無(wú)字符時(shí)要先添加臨時(shí)字符前域,再設(shè)置屬性,否則無(wú)效韵吨。比較奇怪的地方匿垄。

推理發(fā)現(xiàn):
根據(jù)上面的方法,我發(fā)現(xiàn)原來(lái)只要在創(chuàng)建的時(shí)候也在有臨時(shí)字符的情況下賦值屬性归粉,然后刪掉臨時(shí)字符椿疗,也能有相同的效果。

UITextView *textView = [[UITextView alloc] init];
[self.view addSubview:textView];
// textview 改變字體的行間距
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 5;// 字體的行間距
NSDictionary *attributes = @{
                             NSFontAttributeName:[UIFont systemFontOfSize:15],
                             NSParagraphStyleAttributeName:paragraphStyle,
                             NSKernAttributeName:@1.2f,
                             };
// 在有臨時(shí)字符的情況下賦值屬性糠悼,不可省略届榄,否則無(wú)效
textView.attributedText = [[NSAttributedString alloc] initWithString:@"間隔" attributes:attributes]; 
// 刪除臨時(shí)字符
textView.attributedText = [[NSAttributedString alloc] initWithString:@"" attributes:attributes]; 

錯(cuò)誤例子:
可能會(huì)有人直覺(jué)地想到在textViewDidChange里修改,雖有效果但bug嚴(yán)重倔喂。
bug : 輸入中文會(huì)出現(xiàn)字母铝条。每次刪除字符后光標(biāo)都會(huì)回到最后。

- (void)textViewDidChange:(UITextView *)textView {
    // textview 改變字體的行間距
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = 5;// 字體的行間距
    NSDictionary *attributes = @{
                                 NSFontAttributeName:[UIFont systemFontOfSize:15],
                                 NSParagraphStyleAttributeName:paragraphStyle,
                                 NSKernAttributeName:@1.2f,
                                 };
    textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attributes]; 
}
輸入中文會(huì)出現(xiàn)字母
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滴劲,一起剝皮案震驚了整個(gè)濱河市攻晒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌班挖,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芯砸,死亡現(xiàn)場(chǎng)離奇詭異萧芙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)假丧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)双揪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人包帚,你說(shuō)我怎么就攤上這事渔期。” “怎么了渴邦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵疯趟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我谋梭,道長(zhǎng)信峻,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任瓮床,我火速辦了婚禮盹舞,結(jié)果婚禮上产镐,老公的妹妹穿的比我還像新娘。我一直安慰自己踢步,他們只是感情好癣亚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著获印,像睡著了一般逃糟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蓬豁,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天绰咽,我揣著相機(jī)與錄音,去河邊找鬼地粪。 笑死取募,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蟆技。 我是一名探鬼主播玩敏,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼质礼!你這毒婦竟也來(lái)了旺聚?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤眶蕉,失蹤者是張志新(化名)和其女友劉穎砰粹,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體造挽,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碱璃,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饭入。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嵌器。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谐丢,靈堂內(nèi)的尸體忽然破棺而出爽航,到底是詐尸還是另有隱情,我是刑警寧澤乾忱,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布讥珍,位于F島的核電站,受9級(jí)特大地震影響饭耳,放射性物質(zhì)發(fā)生泄漏串述。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一寞肖、第九天 我趴在偏房一處隱蔽的房頂上張望纲酗。 院中可真熱鬧衰腌,春花似錦、人聲如沸觅赊。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吮螺。三九已至饶囚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸠补,已是汗流浹背萝风。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留紫岩,地道東北人规惰。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像泉蝌,于是被迫代替她去往敵國(guó)和親歇万。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容