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

相关文章

来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2110
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2665
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2617
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

32210
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2222
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3225
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4948
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5656
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7068

扫码关注云+社区