zoukankan      html  css  js  c++  java
  • swift3.0 自定义键盘

    ...绕了一大圈,又绕回原生来了,今天,学习一下swift3.0语法下的自定义键盘.效果图如下:

    其实,很简单,只需要把UITextView(或者UITextField)的inputView属性设置为自定义的视图即可.

    这里,我举一个栗子,添加一个自定义的emoji键盘.

    思路:a.先来一个UIViewController,用来承载一个ToolBar(只是为了放几个按钮,切换系统键盘和自定义键盘)

           b.在该UIViewController上面放一个UITextView即可.更改inputView属性.

           c.新建一个UIViewController作为自定义键盘的界面承载.其上放一个UICollectionView布局自定义键盘界面

    1:完成a.b两步,比如把UITextView.inputView = UIViewController().view 效果会如下:

    2.OK,接下来我找了个emoji.plist文件用来存放emoji表情数据,写了一个model存放表情数据使用,然后在collectionView上显示即可.

    其中,重点是如何显示emoji表情,大致如下:

            code = dict["code"] as! String?  //emoji.plist中的code
            //1.从字符串中取出十六进制的数
            //创建一个扫描器,扫描器可以从字符串中提取数据
            let sanner =  Scanner.init(string: code!)
            //2.将十六进制转为字符串
            var result:UInt32 = 0
            sanner.scanHexInt32(&result)
            //3.将十六进制转换为emoji字符串
            emojiStr = "(Character.init(UnicodeScalar.init(result)!))"

    其实就是使用Scanner扫描转换emoji表情为系统可识别的字符串即可,其实,emoji本质就是一些String.

    3.使用MVC在collectionView上显示出表情之后,可以通过闭包回调把选择的表情回调至承载UITextView的控制器中即可.

    基本思路就是这么简单.  demo在 https://github.com/pheromone/swift3.0-emojiKeyboard  

  • 相关阅读:
    同步与异步接口
    教你用 WEB SPEECH API 和 node.js 创建 一个简单的AI
    face ++ 人脸识别技术初步
    php ddos 安全处理代码
    基于GBT28181:SIP协议组件开发-----------第五篇SIP注册流程eXosip2实现(二)
    基于GBT28181:SIP协议组件开发-----------第四篇SIP注册流程eXosip2实现(一)
    基于GBT28181:SIP协议组件开发-----------第三篇SIP注册流程分析实现
    基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理
    基于GBT28181:SIP协议组件开发-----------第一篇环境搭建
    qt二维码示例
  • 原文地址:https://www.cnblogs.com/shaoting/p/6548672.html
Copyright © 2011-2022 走看看