iOS textView 的 placeholder、字数限制、行数限制最优雅的解决方式

更新: 已新增Swift版本!

更新 :约束适配

更新 :新增占位符颜色,字体设置 2017-12-5

如上图。简洁、常用。之前我接触过很多以封装类实现这个功能的三方,用起来需要创建别人的三方等等,总之不是那么舒服,今天自己特意为此用runtime写了一个分类。来实现这两个功能(可分开实现)。 用法:导入分类头文件!

OC

 //    textView.font = [UIFont systemFontOfSize:17];
//    textView.text = @"请�写在自定义属性前面,如果长度大于limitLength设置长度会被自动截断。";
  textView.placeholder = @"欢迎";
  textView.limitLength = @20;
  textView.placeholdColor = [UIColor redColor];
  textView.limitPlaceColor = [UIColor redColor];
  textView.placeholdFont = [UIFont systemFontOfSize:17];
  textView.limitPlaceFont = [UIFont systemFontOfSize:17];
  //    textView.limitLines = @4;//行数限制优先级低于字数限制
  [self.view addSubview:textView];

Swift

        let textview = UITextView(frame: CGRect(x: 100, y: 100, width: 200, height: 150))
//        textview.text = "如果你想对textView.text直接赋值。请在设置属性之前进行,否则影响计算"
        textview.placeholder = "喜欢请Star"
        textview.limitLength = 20
        textview.placeholdColor = .red
        textview.limitLabelColor = .red
        textview.placeholdFont = UIFont.boldSystemFont(ofSize: 17)
        textview.limitLabelFont = UIFont.boldSystemFont(ofSize: 17)
//        textview.limitLines = 4;
        textview.center = self.view.center
        view.addSubview(textview)

对,就是这么简单。 如你所见,每句代码会自动添加一个标签。占位符标签会根据你的占位符字数自动计算高度与宽度,字数限制标签自动计算位置在右下角,记录当前输入字数与限制字数。 iOS技术交流群:511860085 成堆的技术视频福利,欢迎加入! 喜欢请Star 代码传送门

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native之React速学教程(中)

React Native之React速学教程(中) 本文出自《React Native学习笔记》系列文章。 React Native是基于React的,在开发R...

3078
来自专栏AndroidTv

AndroidTv Home界面实现原理(二)——Leanback 库的主页卡位缩放动画源码解析

上一篇中,我们留了问题,在 Tv Home 界面这种很常见聚焦卡位放大动画效果,我们这一篇就来看看 Leanback 库是怎么实现的。

3856
来自专栏学海无涯

Python爬虫之BeautifulSoup

上一篇博文中提到用正则表达式来匹配数据项,但是写起来容易出错,如果有过DOM开发经验或者使用过jQuery的朋友看到BeautifulSoup就像是见到了老朋友...

39710
来自专栏iOSer成长记录

MJRefresh 源码阅读

2342
来自专栏布尔

ExtJS4预览:渲染过程重构和标准化

在过去的四年,ExtJs代码库已经进化了,新组件被加进来,编码标准也改进了。在这个过程中,为了重构旧组件有必要经常追溯回去以保证他们也被改进。 在ExtJS4...

20210
来自专栏企鹅号快讯

使用多个Python库开发网页爬虫(一)

21CTO社区导读:在本篇文章里,我们将讨论使用Python进行网页抓取以及如何引用多个库,如Beautifusoup,Selenium库,以及JavaScri...

3856
来自专栏程序员的知识天地

前端字体截取技术,做炫酷网站再也不用怕中文字体数据量大啦!【实战】

众所周知,相对于英文字体,中文字体天生是“庞然大物”。英文字体两三百KB已经很大了,而中文字体几MB十几MB都算小的。一方面,中文字体包含的字形数量极多,动辄数...

3532
来自专栏程序员维他命

MJRefresh 源码解析

MJRefresh是李明杰老师的作品,到现在已经有1w+颗star了,是一个简单实用,功能强大的iOS下拉刷新(也支持上拉加载更多)控件。它的可定制性很高,几乎...

1262
来自专栏木子墨的前端日常

懒就是生产力之图片懒加载

最近负责的项目渐渐的由业务型转向营销型,营销内容越来越多,图片也就多了起来。图片一多起来问题就来了,一上来几十张图片加载起来半天都过去了,咋办?凉拌--懒加载

1012
来自专栏程序员的诗和远方

在React Native中优雅的使用iconfont

React Native大火大热,其中为了解决图标,易于修改,换颜色,高清等需求,iconfont的应用更是必不可少。 React Native中的ic...

5124

扫码关注云+社区