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 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

Spark详解05架构Architecture架构

架构 前三章从 job 的角度介绍了用户写的 program 如何一步步地被分解和执行。这一章主要从架构的角度来讨论 master,worker,driver ...

2778
来自专栏一“技”之长

iOS文本布局探讨之三——使用TextKit框架进行富文本布局

        关于图文混排,其实以前的博客已经讨论很多,在实际开发中,经常使用第三方的框架来完成排版的需求,其中RCLabel和RTLabel是两个比较好用的...

802
来自专栏程序员的SOD蜜

使用Ring Buffer构建高性能的文件写入程序

最近常收到SOD框架的朋友报告的SOD的SQL日志功能报错:文件句柄丢失。经过分析得知,这些朋友使用SOD框架开发了访问量比较大的系统,由于忘记关闭SQL日志功...

2585
来自专栏高爽的专栏

Java线程(十一):Fork/Join-Java并行计算框架

并行计算在处处都有大数据的今天已经不是一个新鲜的词汇了,现在已经有单机多核甚至多机集群并行计算,注意,这里说的是并行,而不是并发。严格的将,并行是指系统内...

2130
来自专栏進无尽的文章

实践-小细节Ⅴ

OC 中的BOOL 实际上是一种对带符号的字符类型(signed char)的类型定义(typedef),它使用8位的存储空间。通过#define指令把YES定...

601
来自专栏拭心的安卓进阶之路

Android 框架学习1:EventBus 3.0 的特点与如何使用

前面总结了几篇基础,在这过程中看着别人分享自定义 View、架构或者源码分析,看起来比我写的“高大上”多了,内心也有点小波动。 但是自己的水平自己清楚,基础不扎...

2517
来自专栏学海无涯

iOS开发之XLForm的使用

在iOS开发中,开发"表单"界面,字段稍微多一点的一般都用UITableView来做,而XLForm就是这样一个框架,它是创建动态表格视图最牛逼的iOS库, 用...

3768
来自专栏猿人谷

1.注册或登录页面设计:UILabel,UIButton,UITextField

学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里在脑子里形不成iOS开发的思想,现将自己在学习过程...

1965
来自专栏大数据钻研

20款移动开发中很有用的 jQuery 插件

在开发任何移动项目时,要尽可能保持每一种资源尺寸都尽可能的小,以给最终用户提供一个好的体验是非常重要的。在这篇文章中我们已经编制了今年新出炉的 jQuery 移...

2417
来自专栏Android机动车

Android实现异步的几种方式——从简单的图片加载说起

说到异步,脑海中立马浮现的就是多线程开发,Thread、Handler啥的一一涌上心头…

955

扫码关注云+社区