正式转为全职 iOS 工程师已经有一年多了,这一年里工作并不忙,使得我有更多的时间和精力来研究些有意思的东西。最近整理了下这一年攒下来的代码,拆分成了几个库,在接下来的一段时间内会陆续开源:
YYModel 类似 Mantle/JSONModel 的工具,性能比 Mantle 高一个数量级,有更好的容错性,更简洁的 API。
YYCache 类似 TMCache 那样的工具,有着更好的性能,支持 LRU,磁盘缓存支持 SQLite。
YYImage iOS图像库,支持高性能的 APNG/WebP/GIF 动图播放、编码和解码,支持帧动画等。
YYWebImage 类似 SDWebImage 的工具,基于 YYImage 和 YYCache,有更好的性能、更丰富的功能。
YYText UILabel 和 UITextView 的开源实现,支持异步排版渲染、图文混排、更多文字特效/点击效果、动画/表情输入、竖排版等。
YYKeyboardManager 从 YYText 分离出来的一个键盘监听工具,能实时监听和获取键盘视图、位置、动画。
YYDispatchQueuePool 从 YYText 分离出来的一个很简单的队列管理工具,用于管理全局并发任务。
YYAsyncLayer 从 YYText 分离出来的一个很简单的 CALayer 的子类,用于进行异步绘制和显示。
YYCategories Category 类型的工具库。
YYKit 上面所有工具的打包工具集,全部工具都兼容 iOS6~9。
YYKitDemo YYKit 的功能/性能演示,实现有 Twitter 和 Weibo 的 Feed 列表、发布视图,有着和官方 App 完全一致的 UI 和更流畅的交互体验。
每个库都会配有几篇博客来介绍相关技术、性能评测,这也算是我最近一年工作的总结吧。
期待 看一下YYKitDemo:smile:
一年多就可以写这么多库来, 赞.
膜拜..。 :cry:
期待你的这一套高性能框架,同时也为博主的开源精神点赞
期待YYAsyncLayer ;-) ;-) :oops: :oops:
@ibireme 请问下,YYWebImage 用在tableview上gif可以动,用在colloectionView 上gif不动了,是神马原因?
在 TableView 和 CollectionView 上使用应该没有差异才对。你可以试试 -stopAnimating -startAnimating 手动启动动画看一下。
谢谢ibireme,问题解决了!CollectionView上的imageview没有new一个对象,而是通过initWithFrame创建的。没有打开autoAnimation那个开关。我们的项目已经用YYWebImage 替换sd了。再次感谢ibireme~~~~~~~~~
大神你好,麻烦问下:YYmodel支持下面对象的转化吗,就是多层“{[{ }]}”嵌套吗?我用的mantle对于如下这种PicList嵌套就会有问题
{
“code”: “200”,
“data”: {
“expert”: true,
“Abstract”: “”,
“Age”: “50后”,
“History”: “琢磨”,
“Horoscope”: “射手座”,
“Name”: “even”,
“PicList”: [
{
“picDesc”: “”,
“sortIndex”: 0,
“tripPicResponse”: {
“picId”: 3786,
“picUrl”: “http://www.nipic.com/show/4/79/7238532k65362d12.html”
}
}
],
“expertTitle”: “Test”,
“idCardNumber”: “23141215521212232x”,
“phone”: “13333333333”,
“userHeadPic”: “http://www.nipic.com/show/3/15/4615480kee7d812c.html”,
“userId”: 11100,
“userSex”: 0
},
“message”: “请求成功”,
“suc”: true
}
mantle 仔细配置一下的话,应该也没问题的吧。。。
你好,我看你的微博Demo,1:你在YYTableView里边移除手势,为什么呢?
2:是不是移除了之后,必须搭配你的YYControl里边给需要的view再添加block手势呢?
不明白这样做有什么好处?
// Remove touch delay (since iOS 8)
UIView *wrapView = self.subviews.firstObject;
// UITableViewWrapperView
if (wrapView && [NSStringFromClass(wrapView.class) hasSuffix:@”WrapperView”]) {
for (UIGestureRecognizer *gesture in wrapView.gestureRecognizers) {
// UIScrollViewDelayedTouchesBeganGestureRecognizer
if ([NSStringFromClass(gesture.class) containsString:@”DelayedTouchesBegan”] ) {
gesture.enabled = NO;
break;
}
}
}
iOS 系统会在 UITableView 中添加一个手势,导致所有作用在 TableView 上的触摸事件都有大概 0.3 秒的延迟,这个你可以体验一下其他 App 中 TableView 的按钮触摸的效果。
你好,YYTextView弹出搜狗键盘,切换到英文,点击任意字母键盘疯狂闪烁