UITextView的一些知识

来源:互联网 发布:淘宝店心得 编辑:程序博客网 时间:2024/05/20 19:46

今天朋友问了一个关于textview的问题,我下午也用到了textview,接触的比较多,突然就萌生了写一下的想法,哈哈,第一次写,终于要跨出这一步了.
1.朋友给我发的图,输入文本居中,而不是从最上方开始?
如下图:textview输入
如果你查看一下UITextView的定义,你就会看到这样一行代码

NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextView : UIScrollView <UITextInput>

由于textview是继承scrollview的,而iOS7增加了一个属性automaticallyAdjustsScrollViewInsets,会自动下压一个导航条的高度,所以我们需判断一下iOS版本并设置一下这个属性为NO不让它自动布局,添加以下代码

    if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 7.0) {        self.automaticallyAdjustsScrollViewInsets = NO;    }

2.placeholder水印占位字
当然textview是没有的,但可以通过代码实现大致效果,需要在textview的代理方法中实现

#pragma mark --textView delegate-(void)textViewDidBeginEditing:(UITextView *)textView{    if ([textView.text isEqualToString:@"请在这里写"]) {        textView.text = nil;        textView.textColor = [UIColor lightGrayColor];    }}-(void)textViewDidEndEditing:(UITextView *)textView{    if ([textView.text isEqualToString:@""]) {        textView.text = @"请在这里写";        textView.textColor = [UIColor lightGrayColor];        return;    }    //保存,写在这里    _textStr = textView.text;}

3.字数限制,也是代理方法

//宏定义最大字数#define kWordLimit 200-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{    NSString * str = textView.text;/*  //这段可写可不写,以给用户提示下  if (str.length == kWordLimit) {        [SVProgressHUD showInfoWithStatus:@"亲,您已经写200字了哟!"];    }    */    //根据字符串长度判断    if (str.length > kWordLimit) {    //字符串截取方法,用户输入字数达到限制后,无法再往里添加            textView.text = [textView.text substringToIndex:kWordLimit];        return NO;    }    return YES;}//这里主要是处理联想字-(void)textViewDidChange:(UITextView *)textView{    if (textView.text.length > kWordLimit) {        textView.text = [textView.text substringToIndex:kWordLimit];    }}

4.边框
textview默认是没有边框的颜色的,所以位置不明显,看着很别扭,我们一般都要设置一下,设置边框我常用的有两种方法:
一 是 使用layer的属性 二 是放张背景图
这两种方法,可以直接写在textview所在viewcontroller中,也可以自定义一个继承于UITextView的子类,在drawRect方法中实现,(代码类似,不分开写了)如下

- (void)drawRect:(CGRect)rect {  //方法一   图片      [[UIImage imageNamed:@"check"] drawInRect:rect blendMode:kCGBlendModeNormal alpha:0.8];    //方法二   layer    self.layer.borderColor = [UIColor yellowColor].CGColor;//边框颜色    self.layer.borderWidth = 1;//边框宽度(别忘记宽度呀,不设置显示不出来的)    //如需要也可以设置圆角矩形    self.layer.cornerRadius = 10;    self.layer.masksToBounds = YES;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华西医院的就诊卡掉了怎么办 整形医院把我脸上疤痕被大了怎么办 牙齿缝里的东西很臭怎么办 五岁宝宝牙齿有空洞斑点怎么办 给别人担保贷款被起诉了怎么办 不小心在微信里登录江西移动怎么办 住院出院后医保卡在医院怎么办 医院门诊做完检查医生下班了怎么办 退税的发票勾选为抵扣的发票怎么办 买完邮轮票后护照换了怎么办? 朝阳医院挂号过了取号时间怎么办 苹果4的id密码忘了怎么办 ipad己停用5分钟后再试怎么办 手机上大智慧日线失真怎么办 安卓手机突然地图信号弱怎么办 魔兽争霸对战模式没有金币要怎么办 常州号码被标记了商铺的名字怎么办 车提档了不接收怎么办公司能收回吗 稳岗补贴如果联系方式填错了怎么办 湖北驾照扣了50多分怎么办 南京驾照违章了50多分怎么办 有一个月没有去国税保税怎么办? 刑政复议通知书被邮政延误了怎么办 高考听力报名注册了两个用户怎么办 左腿神经损伤夏天脚冰凉怎么办 给区组织部的介绍信给到社区怎么办 被丈夫和儿子强送精神病院怎么办 练车穿短袖晒的胳膊特别黑怎么办 车子卖了对方迟迟不过户怎么办 成都华西医院就诊卡密码忘了怎么办 资阳办健康证怎么办要预约吗 头发出油厉害怎么办民间小偏方 你帮助别人别人却想着害你怎么办 怀孕接触有辐射的东西回怎么办 苹果手机用久了有点卡怎么办 4s店把我车撞了怎么办 长安之星2代大灯高不聚光怎么办 被电动车撞了人跑了怎么办 车被电动车撞了对方跑了怎么办 房子卖了户口没地方迁怎么办 酷派大神f2开不开机怎么办