IOS学习日记之UIView与视图(四)TextView

345 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第25天,点击查看活动详情

大家好,我是小黑,一个还没秃头的程序员~~~

大家好,今天介绍的控件是文本框-TextView,效果如下

话不多说,正文开始:

UITextView是可滚动的多行文本区域视图

UITextView支持使用自定义样式信息显示文本,也支持文本编辑。通常使用文本视图来显示多行文本,例如在显示大型文本文档的主体时。 该类通过使用attributedText属性支持多种文本样式。(样式文本不支持iOS 6之前的版本。)设置此属性的值将导致文本视图使用带属性字符串中提供的样式信息。您仍然可以使用字体、textColor和texttalignment属性来设置样式属性

当用户点击一个可编辑的文本视图时,该文本视图将成为第一个响应器,并自动要求系统显示相关的键盘。因为键盘的外观有可能使用户界面的某些部分变得模糊,所以您需要通过重新定位任何可能被模糊的视图来确保这种情况不会发生。一些系统视图,如表视图,通过自动滚动第一个响应器到视图中来帮助您。但是,如果第一个响应器在滚动区域的底部,您可能仍然需要调整滚动视图的大小或重新定位。

当系统显示或隐藏键盘时,它会发布几个键盘通知。这些通知包含有关键盘的信息,包括它的大小,您可以将其用于涉及重新定位或调整视图大小的计算。注册这些通知是获得某些类型的键盘信息的唯一方法。系统下发以下与键盘相关的事件通知:

  1. keyboardWillShowNotification 键盘显示之前
  2. keyboardDidShowNotification 键盘显示
  3. keyboardWillHideNotification 键盘隐藏之前
  4. keyboardDidHideNotification 键盘隐藏

下面是注册键盘通知和注销键盘通知的例子:

 override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        //注册键盘通知
        NotificationCenter.default.addObserver(self, selector: #selector(keyBoardShow), name: UIResponder.keyboardDidShowNotification, object: nil)
        NotificationCenter.default.addObserver(self, selector: #selector(keyBoardHide), name: UIResponder.keyboardDidHideNotification, object: nil)
    }
    
override func viewWillDisappear(_ animated: Bool) {
        //注销键盘通知
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardDidShowNotification, object: nil)
        NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardDidHideNotification, object: nil)
    }
    
    @objc func keyBoardShow(){
        NSLog("键盘出现")
    }
    @objc func keyBoardHide(){
        NSLog("键盘关闭")
    }

TextView也有用于监听点击return按钮的代理,需要实现UITextViewDelegate,如下列代码:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        if text=="\n" {
            textView.resignFirstResponder()
            NSLog("TextView获得焦点,点击return键")
            return false
        }
        
        return true
    }

UITextView的基本属性如下:

属性说明
delaga代理
text文本内容
attributedText文本字段显示的样式文本
font字体
textColor文字颜色
textAlignment对齐方式
typingAttributes应用于用户输入的新文本的属性
dataDetectorTypes在文本视图中转换为可点击url的数据类型
linkTextAttributes应用于链接的属性
textContainerInset在文本视图的内容区域内插入文本容器的布局区域
usesStandardTextScaling决定文本的呈现比例
isEditing当前是否处于编辑模式。

下面是一个简单的UITextView的例子:

 let textViewTop:CGFloat = titleBarHeight+170
        let textViewWidth:CGFloat = 200
        let textViewHeight:CGFloat = 50
        
        let  textView = UITextView(frame: CGRect(x: (screen.size.width-textViewWidth)/2, y: textViewTop, width: textViewWidth, height: textViewHeight))
        textView.delegate = self
        textView.text = "请输入密码"
        textView.returnKeyType = .go
        textView.keyboardType = .emailAddress
        self.view.addSubview(textView)

更多不同的属性大家可以自己试一试

以上便是IOS中关于UITextView的使用,今天的UIView学习分享就到这里,后面我会持续输出iOS开发笔记,感谢大家的阅读!共同努力!大家晚安!