当前位置:网站首页>Swift - enables textview to be highly adaptive
Swift - enables textview to be highly adaptive
2022-07-05 12:08:00 【RRJia】
Realize the idea :
Use UITextViewDelegate In the agency “textViewDidChange() Method ” Realization .
Implementation method :
Step one : establish TextViewAdapt.swift file , Add to TextView Control , And set up textView.delegate = self( Be sure to set up the proxy , Otherwise it doesn't work !!).
import UIKit
class TextViewAdapt: UIViewController {
private var label = UILabel()
private var textView = UITextView()
override func viewDidLoad() {
// add to label Control
self.label.frame = CGRect(x: 50, y: 150, width: 60, height: 30)
self.label.backgroundColor = .yellow
// Set the prompt text to “ Please enter ”
self.label.text = " Please enter "
self.view.addSubview(self.label)
// add to textView Control
self.textView.frame = CGRect(x: 130, y: 150, width: 200, height: 30)
// Set up textView The border width of
self.textView.layer.borderWidth = CGFloat(1)
// Set up textView The border color of
self.textView.layer.borderColor = UIColor.black.cgColor
self.view.addSubview(self.textView)
// ( important !! Must do !!) Set up textView Agent for , And implement the corresponding methods in the extension class !!!
self.textView.delegate = self
}
}
Step two : Because step 1 is set textView.delegate = self, So here we are TextViewAdapt In the extension class of Implementing agent methods .
// Realization TextView agent
extension TextViewAdapt: UITextViewDelegate {
// textView Every time it changes , Will call this method
func textViewDidChange(_ textView: UITextView) {
// Preset textView Size , Set the width to a fixed width , The height is set to CGFloat The maximum of
let presetSize = CGSize(width: textView.frame.size.width, height: CGFloat.greatestFiniteMagnitude)
// Recalculate textView Size
let newSize = textView.sizeThatFits(presetSize)
// to update textView Size
self.textView.frame = CGRect(origin: CGPoint(x: textView.frame.origin.x, y: textView.frame.origin.y), size: CGSize(width: textView.frame.size.width, height: newSize.height))
}
}
result :TextView Highly adaptive success
边栏推荐
- leetcode:1200. Minimum absolute difference
- 想问问,如何选择券商?在线开户是很安全么?
- Linux Installation and deployment lamp (apache+mysql+php)
- Principle and performance analysis of lepton lossless compression
- Video networkState 属性
- ACID事务理论
- Redis集群的重定向
- 语义分割实验:Unet网络/MSRC2数据集
- [configuration method of win11 multi-user simultaneous login remote desktop]
- 【使用TensorRT通过ONNX部署Pytorch项目】
猜你喜欢
【无标题】
Wireless WiFi learning 8-channel transmitting remote control module
调查显示传统数据安全工具在60%情况下无法抵御勒索软件攻击
16 channel water lamp experiment based on Proteus (assembly language)
pytorch-多层感知机MLP
Thoughts and suggestions on the construction of intelligent management and control system platform for safe production in petrochemical enterprises
How to clear floating?
Liunx prohibit Ping explain the different usage of traceroute
【使用TensorRT通过ONNX部署Pytorch项目】
HiEngine:可媲美本地的云原生内存数据库引擎
随机推荐
1.php的laravel创建项目
Codeforces Round #804 (Div. 2)
Codeworks 5 questions per day (1700 average) - day 5
View all processes of multiple machines
互联网公司实习岗位选择与简易版职业发展规划
Course design of compilation principle --- formula calculator (a simple calculator with interface developed based on QT)
[calculation of loss in yolov3]
Redis集群的重定向
11. (map data section) how to download and use OSM data
【 YOLOv3中Loss部分计算】
Dynamic SQL of ibatis
Which domestic cloud management platform manufacturer is good in 2022? Why?
Linux安装部署LAMP(Apache+MySQL+PHP)
Redirection of redis cluster
【load dataset】
Four operations and derivative operations of MATLAB polynomials
pytorch-多层感知机MLP
Check the debug port information in rancher and do idea remote JVM debug
Video networkState 属性
leetcode:1200. Minimum absolute difference