聊天图片框
- 给定一个缩小版的图片,如何变成包含任意大小文字的图片框?
- 首先将此图片设置为UIButton的背景图片。
- 之后需要对图片进行加工:resizableImageWithCapInsets,可对图片进行拐角不变形拉伸处理。
- 也可以通过图片的属性面板设置:slicing Horizontal and Vertical
- 因为文字是包含在UIButton中的,而UIButton的背景图片并没有囊括所有的文字,故需要缩小文字在UIButton的显示空间。
- 设置UIButton的属性 contentEdgeInsets,在属性面板中也有设置。
键盘处理
-
当键盘弹出的时候,聊天界面的处理,需要随着键盘的弹出/消失,而自动平滑的上移/下移。
- 通知中心对象 NSNotificationCenter defaultCenter,可以跨对象跨控制器之间传递数据。
- 注册通知,一个对象想要获取另一个对象的变化,需要注册。
- 发送通知 NSNotification,一个对象发生变化了,需要发送通知给系统,系统再通知注册通知的对象。
- UIDevice通知 获取设备先关的信息,比如键盘弹出通知,包含有键盘的详细信息,比如键盘高度,键盘动画时间。
-
键盘弹出,聊天界面的处理
- 当获取到键盘弹出之后,需要将其聊天界面上调。
- 1.修改底部工具条距离superView的距离,将其更改为键盘长度,可进行拖线进行变量更改。
- 2.将整个控制器的view往上挪,将其y值更改为负数。
- 3.使用transform
- CGAffineTransformMakeTanslation(100,100),是将对象进行平移。
- CGAffineTransform,可以进行形变属性的叠加
- animateWithDuration,增加动画
- CGffineTransformIdentity, 全部清空形变属性
增加头部/尾部
- 是整张表格的头部/尾部,不是section的头部/尾部。
- 头部一般用于焦点图片的展示,尾部可用于广告,也可以是:退出登录。
- 将尾部设置为: 加载更多数据 —— 数据正在加载中
- 1.使用通知的方式,在两个对象之间传递数据。
- 2.使用代理设计模式,当监听一个对象发生的行为时,可以使用代理模式。
- 3.KVO的方式 key value observing,监听属性值的改变,NSObject对象的方法:observeValueForKeyPath
tips
- 使用代理设计模式的时候,有些方法是@optional是可选的,这个时候要判断代理对象是否实现了此种方法,可以使用方法:respondToSelector:@selector()
网友评论