聊天室优化时有几个的地方我花比较多时间,我先列举一下:
1. 可以在送出的讯息中插入自订的表情符号
2. Xib制作和引入
光是第一项我就搞了超久的,一度怀疑自己不适合走上写程序这途,
参考了网路上很多大神的写法,发现一个很可行,
於是发现了NSMutableAttributedString这个很棒又很难懂的东西,
图文混排的呈现,靠它就对了
下篇再专注於第一项的解法
这篇先来制作xib
聊天室对话框的底是用tableview
表情符号的显示是用一个view包着
底部则为输入框和按钮区
当然为了排版的方便有使用StackView
对话框的部分有客制了两个xib
1.在你要创建的目录下按右键选择”New File...”,然後会弹出下图的视窗,选择”User Interface”里的”View”项目,点击Next。
2.然後自订一下档名(等等创建一个一样档名的class),勾选要使用的”Targets”,然後创建Xib档案。
3.会在指定目录底下看到新的Xib档。
4.接着循着刚刚的步骤,选择”Source“底下的”Swift File”。
5.然後一样记得勾选指定的”Targets”,就可以创建完成了。
6.完成如下所示。
7.然後至xib档案右侧栏设定class,然後就可以开始布局了。
8.引用进tableview
在viewDidLoad(),加上下面这段:
注册这个元件供tableview使用
let myCell = UINib(nibName: “testCustomView”, bundle: nil)
TableView.register(myCell, forCellReuseIdentifier: “myCell")
在ViewController继承UITableViewDelegate与UITableViewDataSource 的下面加上下面这段:
在tableviewcell使用客制元件
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let myCell = tableView.dequeueReusableCell(withIdentifier: “myCell") as! testCustomView
myCell.delegate = self
myCell.selectionStyle = .none
}
//记得一定要代理,不然你做得再美都不会生效
<<: DAY 13 资料库-建立并操作Heroku PostgreSQL
>>: IT 铁人赛 k8s 入门30天 -- day11 Helm - Package Manager
0x1 前言 废话不多说,今日流程如下先观察传进内容,在针对内容刻画面 0x2 建立 Route 跟...
Google Static Map API 是将网页上需要的地图画面,以静态地图图片的方式显示。 优...
常见部署情况 根据需求不同,有不一样的部署模式,常见的情况如下: 提供新的产品/功能:常用的设计模式...
接续介绍Kinesis家族中其它更实用的资料分析服务: 进入Kinesis服务首页可以看到这三个常常...
来介绍一下DiffUtil 以往我们在使用RecyclerView时最常使用的是 RecyclerV...