ios swift5 UITextView占位字符,记录限制字数

文章目录

  • 截图
  • 代码:具体使用
  • 代码:CustomTextView

截图

请添加图片描述

请添加图片描述

代码:具体使用

 scrollView.addSubview(contentTextView)contentTextView.placeholderLabel.text = LocalizableManager.localValue("write_comment")contentTextView.maxCharacters = 500contentTextView.backgroundColor = newUIBackColorcontentTextView.snp.makeConstraints { make inmake.left.right.equalToSuperview().inset(20)make.top.equalTo(problemLabel.snp_bottomMargin).offset(20)make.height.equalTo(150)}contentTextView.characterCountChanged = { [self] count inprint("当前输入了 \(count) 个字符")textCountLabel.text = String(count) + "/500"}

代码:CustomTextView

class CustomTextView: UITextView {// 占位文字var placeholderLabel: UILabel!// 最大字符数var maxCharacters = 200// 输入字符数变化的回调var characterCountChanged: ((Int) -> Void)?// 初始化方法override init(frame: CGRect, textContainer: NSTextContainer?) {super.init(frame: frame, textContainer: textContainer)setup()}required init?(coder: NSCoder) {super.init(coder: coder)setup()}private func setup() {// 设置代理delegate = self//设置textView的字体大小self.font = UIFont.systemFont(ofSize: 15)// 创建并设置占位文字的标签placeholderLabel = UILabel()placeholderLabel.text = LocalizableManager.localValue("report_description_tips")placeholderLabel.font = self.fontplaceholderLabel.textColor = UIColor.lightGrayplaceholderLabel.numberOfLines = 0placeholderLabel.isHidden = !self.text.isEmptyaddSubview(placeholderLabel)updatePlaceholderFrame()}override func layoutSubviews() {super.layoutSubviews()updatePlaceholderFrame()    }private func updatePlaceholderFrame() {let placeholderSize = placeholderLabel.sizeThatFits(CGSize(width: self.frame.width - 10, height: CGFloat.greatestFiniteMagnitude))placeholderLabel.frame = CGRect(x: 5, y: 5, width: placeholderSize.width, height: placeholderSize.height)}
}extension CustomTextView: UITextViewDelegate {func textViewDidChange(_ textView: UITextView) {// 更新占位文字的可见性placeholderLabel.isHidden = !textView.text.isEmpty// 限制输入的字符数if textView.text.count > maxCharacters {textView.text = String(textView.text.prefix(maxCharacters))}// 通知外部关于字符数的变化characterCountChanged?(textView.text.count)}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149591.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ActiveMQ 的传输协议机制

ActiveMQ 通过网络连接器这种连接机制来实现客户端与服务端之间的通信&#xff0c;ActiveMQ支持的传输协议在activeMQ 安装目录的 conf/activemq.xml中的<transportConnectors>标签之内。 ActiveMQ 支持的 client 端和 broker 端的通讯协议有&#xff1a;TCP、NIO、UDP、…

芝法酱学习笔记(0.3)——SpringBoot下的增删改查

零、前言 书接上回&#xff0c;我们搭建了windows下的开发环境&#xff0c;并给出了一个hello world级别的多模块SpringBoot项目。 毕竟java后端开发&#xff0c;离不开数据库的操作&#xff0c;为方便后面内容的讲解&#xff0c;这里再做一期铺垫&#xff0c;core模块下新增一…

洛汗2搬砖攻略:VMOS云手机一键搬砖辅助教程!

在《洛汗2》的世界中&#xff0c;玩家往往需要长时间刷怪、任务和升级&#xff0c;手动操作往往会耗费大量时间和精力。这时候&#xff0c;使用VMOS云手机来辅助游戏&#xff0c;将是一个极佳的选择。VMOS云手机专为《洛汗2》提供了专属定制版云手机&#xff0c;内置游戏安装包…

2.Spring-容器-注入

注册&#xff1a;将组件放入容器中&#xff1b; 注入&#xff1a;让容器按需进行操作&#xff1b; 一、Autowired&#xff1a;自动注入组件 原理&#xff1a;Spring调用容器的getBean 二、Qualifier 精确指定 精确指定&#xff1a;如果容器中组件存在多个&#xff0c;则使用…

【Linux】ubuntu 16.04 搭建jdk 11 环境(亲测可用)

目录 0.环境 1.题外话 2.详细 0.环境 windows11 主机 Virtual Box 7.0 ubuntu 16.04系统 想搭建个 jdk11的环境&#xff0c;用于项目 1.题外话 因为虚拟机与主机传输文件不方便&#xff0c;所以可以尝试用共享文件夹的方式传输&#xff0c;亲测可用&#xff0c;参考以下博…

LeetCode题练习与总结:二叉树的最近公共祖先--236

一、题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也…

windows 安装配置nginx

进入到对应的nginx的配置文件里 80的这个server块里 添加 location / { return 301 https://$host$request_uri; # 301 永久重定向到 HTTPS } (如果是http重定向https&#xff0c;其他的可以删了 只保留截图中的内容) https的server块里面添加 证书的…

SLM7888兼容FAN7888—— 低压三相半桥驱动的理想之选

SLM7888系列型号&#xff1a; SLM7888CH&#xff1a;SOP20W SLM7888MD&#xff1a;TSSOP20 SLM7888是一款高压、高速的功率MOSFET和IGBT驱动器&#xff0c;它提供三个独立的高边、低边输出驱动信号便于用于三相电路。采用专有的高压集成电路和锁存免疫CMOS技术&…

二分查找算法(5) _山脉数组的峰顶索引

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 二分查找算法(5) _山脉数组的峰顶索引 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c;…

< 微积分Calculus >

微积分 微分是把整体分拆为小部分来求它怎样改变 积分是把小部分连接在一起来求整体有多大&#xff0c;可以用来求面积、体积、中点和很多其他有用的东西。 lim极限 函数f(x) -> Q(x) y&#xff1a;x变量&#xff0c;f函数&#xff0c;Q(x)函数体&#xff08;多项式&am…

Centos下安装Maven(无坑版)

Linux 安装 Maven Maven 压缩包下载与解压 华为云下载源&#xff0c;自行选择版本 下面的示例使用的是 3.8.1 版本 wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz解压 tar -zxvf apache-maven-3.8.1-bin.tar.gz移…

Centos安装helm

Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 两种安装方式&#xff0c;二进制安装、脚本安装。脚本安装服务器在下载安装包可能会下载失败。 脚本安装 官网提供了脚本安装 $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/sc…

清华大学开源 CogVideoX-5B-I2V 模型,以支持图生视频

CogVideoX 是源于清影的开源视频生成模型。 下表列出了我们在此版本中提供的视频生成模型的相关信息。 Model NameCogVideoX-2BCogVideoX-5BCogVideoX-5B-I2V (This Repository)Model DescriptionEntry-level model, balancing compatibility. Low cost for running and second…

基于Nginx搭建点播直播服务器

实现直播和点播离不开服务器⽀持&#xff0c;可以使用开源的NGINX服务器搭建直播和点播服务。 当然&#xff0c;NGINX本身是不⽀持视频的&#xff0c;需要为NGINX增加相应的RTMP模块进行支持。 1、下载nginx和rtmp模块 # nginx wget ht tp://nginx.org/download/nginx-1.18.…

Nginx反向代理简介,作用及配置;Nginx负载均衡简介,作用及配置;

一&#xff0c;Nginx反向代理 1.1简介 反向代理服务器位于用户与目标服务器之间&#xff0c;但是对于用户而言&#xff0c;反向代理服务器就相当于目标服务器&#xff0c;即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时&#xff0c;用户不需要知道目标服务器的…

认知杂谈77《简单:通往高手的技巧》

内容摘要&#xff1a;          在信息爆炸、关系复杂的时代&#xff0c;简单是复杂背后的真谛。简单如“112”&#xff0c;是智慧的朴素呈现。简单有强大力量&#xff0c;像清泉般纯净&#xff0c;如“我爱你”简单却有力&#xff0c;基础财务知识也体现其在理财中的作…

java项目开发Spring框架

简化开发、框架整合、节约成本&#xff1b;官网网址&#xff1a;http://spring.io 耦合度高。 IOC 对象外部引入 1.导入Spring坐标 <dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId…

2024全国研究生数学建模竞赛(数学建模研赛)ABCDEF题深度建模+全解全析+完整文章

全国研究生数学建模竞赛&#xff08;数学建模研赛&#xff09;于9月21日8时正式开赛&#xff0c;赛程4天半&#xff0c;咱这边会在开赛后第一时间给出对今年的6道赛题的评价、分析和解答。包括ABCDEF题深度建模全解全析完整文章&#xff0c;详情可以点击底部的卡片来获取哦。 …

Zookeeper+消息队列(kafka)

目录 一、Zookeeper概述 1、Zookeeper概念 2、Zookeeper工作机制 3、Zookeeper数据结构 4、Zookeeper 应用场景 5、Zookeeper 选举机制 5.1、第一次启动选举机制 5.2、非第一次启动选举机制 二、部署 Zookeeper 集群 1、部署环境 2、安装 zookeeper 软件 3、设置主…

【第十八章:Sentosa_DSML社区版-机器学习之协同过滤】

【第十八章&#xff1a;Sentosa_DSML社区版-机器学习之协同过滤】 1.算子介绍 协同过滤是推荐系统中常用的一种方法。该算法旨在填补用户-产品关联矩阵中缺少的项。在算法中&#xff0c;用户和产品都是通过一组少量的潜在因素描述&#xff0c;这些潜在因素可以用于预测用户-产…