TextView 常用功能


#import "ViewController.h"

@interface ViewController ()<UITextViewDelegate>
@property(nonatomic,strong)UITextView *textView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.textView = [[UITextView alloc]initWithFrame:CGRectMake(20, 100, self.view.bounds.size.width - 40, 100)];
    [self.view addSubview:self.textView];
    self.textView.backgroundColor = [UIColor orangeColor];
    self.textView.text = @"文本內(nèi)容";
    self.textView.font = [UIFont systemFontOfSize:14];//文字大小
    self.textView.textAlignment = NSTextAlignmentLeft;//文本對其方式
    self.textView.textColor = [UIColor purpleColor];//文本顏色
    self.textView.editable = YES;//是否可以編輯
    self.textView.selectable = YES;//是否支持選中
    self.textView.delegate = self;//代理
    self.textView.dataDetectorTypes = UIDataDetectorTypeAll;//textView自動(dòng)檢測內(nèi)部的電話號碼 網(wǎng)站link email
    UIView *keyBoardView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 40)];
    keyBoardView.backgroundColor = [UIColor redColor];
    self.textView.inputView = keyBoardView;//在輸入鍵盤上方添加一個(gè)view 可以在這個(gè)view 中添加需要的控件
}

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView;
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;

- (void)textViewDidBeginEditing:(UITextView *)textView;
- (void)textViewDidEndEditing:(UITextView *)textView;

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text;
//輸入內(nèi)容發(fā)生了改變
- (void)textViewDidChange:(UITextView *)textView;

- (void)textViewDidChangeSelection:(UITextView *)textView;

@end

textView 沒有提示文字功能 模仿textField 給textView加一個(gè)提示信息

思路和原理: 放一個(gè)Label在textview 上一層 剛好覆蓋在textview 輸入的位置 判斷textview中的文字是否為空 如果為空 將 label的hidden 設(shè)置為NO else 設(shè)置為 YES

 _placeHolderLab = [[UILabel alloc]initWithFrame:CGRectMake(self.textView.frame.origin.x+5, self.textView.frame.origin.y+4, 100, 25)];
    _placeHolderLab.text = @"請輸入xxx,xxx";
    _placeHolderLab.font = _textView.font;
    _placeHolderLab.textColor = [UIColor lightGrayColor];
    [self.view addSubview:_placeHolderLab];
-(void)textViewDidChange:(UITextView *)textView{
    if (textView.text.hash == @"".hash) {
        self.placeHolderLab.hidden = NO;
    }else{
        if (self.placeHolderLab.hidden == NO) {
            self.placeHolderLab.hidden = YES;
        }
    }
}

UITextView 繼承于 UIScrollView 所以 UIScrollView 有的特性 textview 都有
實(shí)現(xiàn)微信輸入框中自動(dòng)換行 超出四行后 可以滾動(dòng)的效果

-(void)textViewDidChange:(UITextView *)textView{
    //計(jì)算當(dāng)前textView有多高
    CGFloat height = ceilf([self.textView sizeThatFits:CGSizeMake(self.textView.bounds.size.width, MAXFLOAT)].height);
    NSLog(@"height = %.2f",height);
    // 計(jì)算最大高度 = (每行高度 * 總行數(shù) + 文字上下間距)
    CGFloat f = ceil([UIFont systemFontOfSize:14].lineHeight * 5 + self.textView.textContainerInset.top + self.textView.textContainerInset.bottom);
    if (height < f) {
        self.textView.scrollEnabled = NO;
        [UIView animateWithDuration:0.25 animations:^{
            CGRect rect = self.textView.frame;
            rect.size.height = height;
            self.textView.frame = rect;
        }];
    }else{
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.02 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [UIView animateWithDuration:0.25 animations:^{
                self.textView.scrollEnabled = YES;
                textView.contentOffset = CGPointMake(0, textView.contentSize.height - textView.bounds.size.height);
            }];
        });
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赖舟,一起剝皮案震驚了整個(gè)濱河市爬坑,隨后出現(xiàn)的幾起案子狂打,更是在濱河造成了極大的恐慌黑滴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惕澎,死亡現(xiàn)場離奇詭異廊驼,居然都是意外死亡熙涤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門鞠绰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來腰埂,“玉大人,你說我怎么就攤上這事蜈膨∮炝” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵丈挟,是天一觀的道長刁卜。 經(jīng)常有香客問我,道長曙咽,這世上最難降的妖魔是什么蛔趴? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮例朱,結(jié)果婚禮上孝情,老公的妹妹穿的比我還像新娘鱼蝉。我一直安慰自己,他們只是感情好箫荡,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布魁亦。 她就那樣靜靜地躺著,像睡著了一般羔挡。 火紅的嫁衣襯著肌膚如雪洁奈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天绞灼,我揣著相機(jī)與錄音利术,去河邊找鬼。 笑死低矮,一個(gè)胖子當(dāng)著我的面吹牛印叁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播军掂,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼轮蜕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝗锥?” 一聲冷哼從身側(cè)響起跃洛,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玛追,沒想到半個(gè)月后税课,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痊剖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年韩玩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陆馁。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡找颓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叮贩,到底是詐尸還是另有隱情击狮,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布益老,位于F島的核電站彪蓬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏捺萌。R本人自食惡果不足惜档冬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一滑潘、第九天 我趴在偏房一處隱蔽的房頂上張望蛤肌。 院中可真熱鬧弄砍,春花似錦原献、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玫氢,卻和暖如春帚屉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琐旁。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工涮阔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜绣,地道東北人灰殴。 一個(gè)月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像掰邢,于是被迫代替她去往敵國和親牺陶。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

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

  • 占位文字1辣之、曾經(jīng)有個(gè)這么一個(gè)項(xiàng)目需求: 使用textField時(shí),占位文字默認(rèn)是黑色的,我們的需求是當(dāng)開始編輯時(shí),...
    博行天下閱讀 915評論 2 1
  • { 11掰伸、核心動(dòng)畫 需要簽協(xié)議,但是系統(tǒng)幫簽好 一怀估、CABasicAnimation 1狮鸭、創(chuàng)建基礎(chǔ)動(dòng)畫對象 CAB...
    CYC666閱讀 1,557評論 2 4
  • 轉(zhuǎn)自:http://www.code4app.com/blog-866962-1317.html1、設(shè)置UILab...
    MMOTE閱讀 1,630評論 1 1
  • 今天早上起床聽書和媽媽一起洗衣服多搀,然后接到老師通知去學(xué)校寫小卡歧蕉。整體表現(xiàn)都還好,自己覺得今天有一件事做的是不盡人意...
    世俗凡人閱讀 250評論 2 2
  • 2017年5月22日 周一康铭,天氣晴 今天上午第一節(jié)領(lǐng)導(dǎo)干部例會(huì)惯退。(本周主要迎接青島的質(zhì)量測試) 第二...
    晨林夕閱讀 244評論 0 1