logo头像
Snippet 博客主题
iOS - Swift 面向协议编程(一)

iOS - Swift 面向协议编程(一)

传统的面向对象开发思维方式是将类中实现的相似方法抽取出来,接着放入一个Base类,然后继承于Base类后各个类即可找拥有相同的方法,不用再一个个手动实现。比如:一个Person类,一个Dog类,它们都拥有方法eat,那么就可以新建一个Animal类,将eat方法抽取出来放入其中,然后将Person类和Dog类都继承于Animal。但是,如果现在又有一个Robot类,也需要拥有eat方法,而此时也将其继承于Animal的话显然是不合理的,于是我们就需要转换思维,面向协议开发~ +…

iOS - Swift 高仿微信

iOS - Swift 高仿微信

从2016年12月份开始做到 2017年2月16,虽说这个项目看起来不大,但是锻炼人的地方还真是很多的,微信通讯录联系人的按拼音排序,自定义表情键盘中遇到的分页滚动,微信聊天界面的图片显示、语音信息的动画等。挑战着各种各样的需求,本人也将遇到的问题的解决方案做了记录并整理了一下,希望能给iOS程序员同胞们带来帮助。目前基本的聊天已完成,实现了一部分个人信息的修改,功能我会尽快完善的! +…

iOS - Swift UITableView的scrollToRow的坑

今天鄙人使用SnapKit来布局cell,然后用scrollToRow来滚到底部就遇到了一个很奇葩的现象。我设置了在键盘弹出后聊天消息列表会自动滚到底部。1.随便输入一条消息,点发送后,在聊天消息列表中并没有滚到最新消息那一行。2.退出键盘不做任何操作再打开键盘也是滚到刚才那里(即最新消息的上一条所在位置)3.只有在退出键盘后把聊天消息列表的消息向上拉一点距离露出最新消息所在的cell之后,再点击才有用 +…