大神-YY

https://github.com/ibireme/YYKit

YYKit

          

YYKit is a collection of iOS components.

It‘s so huge that I split it into several independent components:

  • YYModel — High performance model framework for iOS.
  • YYCache — High performance cache framework for iOS.
  • YYImage — Image framework for iOS to display/encode/decode animated WebP, APNG, GIF.
  • YYWebImage — Asynchronous image loading framework.
  • YYText — Powerful rich text component for iOS.
  • YYKeyboardManager — Access keyboard view and track keyboard animation.
  • YYDispatchQueuePool — iOS utility class to manage global dispatch queue.
  • YYAsyncLayer — iOS utility classes for asynchronous rendering and display.
  • YYCategories — A set of useful categories for Foundation and UIKit.

Demo Project

See Demo/YYKitDemo.xcodeproj


 

Installation

CocoaPods

  1. Add pod "YYKit" to your Podfile.
  2. Run pod install or pod update.
  3. Import <YYKit/YYKit.h>.

Carthage

  1. Add github "ibireme/YYKit" to your Cartfile.
  2. Run carthage update --platform ios and add the framework to your project.
  3. Import <YYKit/YYKit.h>.
  4. Notice: carthage framework doesn‘t include webp component, if you want to support webp, use CocoaPods or install manually.

Manually

  1. Download all the files in the YYKit subdirectory.
  2. Add the source files to your Xcode project.
  3. Add -fno-objc-arc compiler flag to NSObject+YYAddForARC.m and NSThread+YYAdd.m.
  4. Link with required frameworks:
    • UIKit
    • CoreFoundation
    • CoreText
    • CoreGraphics
    • CoreImage
    • QuartzCore
    • ImageIO
    • AssetsLibrary
    • Accelerate
    • MobileCoreServices
    • SystemConfiguration
    • sqlite3
    • libz
  5. Add Vendor/WebP.framework(static library) to your Xcode project if you want to support WebP.
  6. Import YYKit.h.

Documentation

Full API documentation is available on CocoaDocs.
You can also install documentation locally using appledoc.

Requirements

This library requires a deployment target of iOS 6.0 or greater.

About

I want to use the APIs as if it was provided by system, so I don‘t add prefix in these categories. I don‘t recommend using the YYKit directly, you should try the separated components first.

License

YYKit is provided under the MIT license. See LICENSE file for details.

中文介绍

YYKit 是一组庞大、功能丰富的 iOS 组件。

为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件:

  • YYModel — 高性能的 iOS JSON 模型框架。
  • YYCache — 高性能的 iOS 缓存框架。
  • YYImage — 功能强大的 iOS 图像框架。
  • YYWebImage — 高性能的 iOS 异步图像加载框架。
  • YYText — 功能强大的 iOS 富文本框架。
  • YYKeyboardManager — iOS 键盘监听管理工具。
  • YYDispatchQueuePool — iOS 全局并发队列管理工具。
  • YYAsyncLayer — iOS 异步绘制与显示的工具。
  • YYCategories — 功能丰富的 Category 类型工具库。

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


 

安装

CocoaPods

  1. 在 Podfile 中添加  pod "YYKit"
  2. 执行 pod install 或 pod update
  3. 导入 <YYKit/YYKit.h>。

Carthage

  1. 在 Cartfile 中添加 github "ibireme/YYKit"
  2. 执行 carthage update --platform ios 并将生成的 framework 添加到你的工程。
  3. 导入 <YYKit/YYKit.h>。
  4. 注意: carthage framework 并没有包含 webp 组件。如果你需要支持 webp,可以用 CocoaPods 安装,或者手动安装。

手动安装

  1. 下载 YYKit 文件夹内的所有内容。
  2. 将 YYKit 内的源文件添加(拖放)到你的工程。
  3. 为 NSObject+YYAddForARC.m 和 NSThread+YYAdd.m 添加编译参数 -fno-objc-arc
  4. 链接以下 frameworks:
    • UIKit
    • CoreFoundation
    • CoreText
    • CoreGraphics
    • CoreImage
    • QuartzCore
    • ImageIO
    • AssetsLibrary
    • Accelerate
    • MobileCoreServices
    • SystemConfiguration
    • sqlite3
    • libz
  5. 如果你需要支持 WebP,可以将 Vendor/WebP.framework(静态库) 加入你的工程。
  6. 导入 YYKit.h

文档

你可以在 CocoaDocs 查看在线 API 文档,也可以用 appledoc 本地生成文档。

系统要求

该项目最低支持 iOS 6.0。

关于

我希望调用 API 时,有着和调用系统自带 API 一样的体验,所以我并没有为 Category 方法添加前缀。我已经用工具扫描过这个项目中的 API,确保没有对系统 API 产生影响,但即使这样没有前缀的 Category 也可能会带来其他麻烦。我不太推荐直接使用 YYKit 这个库,你应该先尝试一下上面那些拆分出来的独立组件。

许可证

YYKit 使用 MIT 许可证,详情见 LICENSE 文件。

相关文章

iOS 保持界面流畅的技巧

时间: 2024-11-05 13:33:09

大神-YY的相关文章

如何从小白逆袭成大神?

当你离开校门,当然,你也有可能是一个学生,你想要提升自己的技能,发展自己的爱好,你该做些什么,让自己从小白变成大神? 有一本书叫做<一万小时天才理论>,里面说其实天才不是天生的,你需要一万个小时的努力才能够成为天才.一万小时是什么概念呢?就是每天练习三个小时,坚持十年.如果你被这个数字吓到提前退场了,我也是可以理解的.OK,还在的话我们就接着往下说.我承认在书中的严密论断下,我认为这句话完全正确,但是......你要成为天才嘛?你要在每一项技能上都成为天才嘛?应该不会吧!而且一万小时的积累对你

某大神C#框架后台发送信息的查找及破解

最近在博客园瞎逛的时候,发现了某个大神发布的一个c#框架,一看框架,叫牛逼框架,嗯,装B效果太好了,界面很炫,虽然有很多的组件还是不怎么完善,但是,已经可以初步运用于项目了. 先来看看界面:   在进行测试的时候,用浏览器进行测试的时候,发现一个问题,就是该程序会主动向后台发送一些信息.信息如下: 1.http://www.nfine.cn:8099/NFineWatch/signalr/hubs  2.http://www.nfine.cn:8099/NFineWatch/signalr/ne

python 抓取搜狗微信出现的问题,求大神解决

爬取到的data不是想要获取文章页面的源码,而是跳转到验证码的页面的源码.我网上查了一下是由于访问过于频繁导致的,我也加了time.sleep和改了请求头但还是显示不了,求大神支招,除了识别验证码的方式还能怎么做?? import re import urllib.request import time import urllib.error headers = {'User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/2

算法大神之路----排序(冒泡排序法)

冒泡排序法 冒泡排序法又称为交换排序法,是由观察水中冒泡变化构思而成,气泡随着水深压力而改变.气泡在水底时,水压最大,气泡最小,而气泡慢慢浮上水面时,气泡所受压力最小,体积慢慢变大. 冒泡排序比较方式是从第一个元素开始,比较相邻的元素大小,如果大小顺序有误,则对调后进行下一个元素比较.直到所有元素满足关系为止. 冒泡排序法分析 冒泡排序法平均情况下,需要比较(n-1)/2次,时间复杂度为O(n2),最好的情况只需要扫描一次,不用操作,即作n-1次比较,时间复杂度为O(n). 由于冒泡排序为相邻两

聊聊成为大神路上的过程(决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度,要多看别人的代码)

每个人都在成为大神的路上,只不过有的人在走,而有的人在跑. 写在前面的话 在开始正文之前我先跟大家分享一个我身边的例子.我有两个朋友,A和B.B从高一开始打dota,A从高二开始,到高中毕业的时候,A已经是一个 2100分的大神级别的人物,而B只有1200分而已.为什么A打的时间比B短,而水平却比B高呢?是天赋?是智商?似乎都不是. 我对两个人还是比较了解的,虽然同样是打dota,但是A和B之间有着很大差别的.A除了像B一样打dota之外,会看一些成名已久的大神的教学视 频,会看自己打dota的

【心灵鸡汤】大神,我有个问题,帮我看看

提前先申明今天的话题不是为了责备或者责怪,如果你非要这么理解我也没有办法 今天的话题就由下面这张图引出来,以下是一个找人帮忙解决问题的描述 最近这段时间经常遇到类似这样的寻求帮助的. 我说一下我看到这样的寻求帮助的对话之后内心的变化过程 认真读每一句话 从描述找遇到的问题 内心狂躁 心中一万个草泥马在奔腾 一般任何人只要找我问问题,我都会尽量尽我所能去解决,如果真真解决不了,当然也只能抱歉,因为我个人能力不够,仍然需要学习 那么为什么我内心会狂躁 因为我看了半天没读懂你到底要问什么,你的困难在哪

求助大神们看下这道算法题

时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高位数字不为0. 因此,符合我们定义的最小的有趣的数是2013.除此以外,4位的有趣的数还有两个:2031和2301. 请计算恰好有n位的有趣的数的个数.由于答案可能非常大,只需要输出答案除以1000000007的余数. 输入格式 输入只有

阅读寒冬前端大神文章有感

最近,在微博上面看到了寒冬大神的一篇文章,甚是认同,所以写下自己觉得有用的地方: 我认为,前端开发主要在两个方面,一部分是”能力”,一部分是”知识”.我个人的观点,能力占百分之八十,知识占百分之二十. 最新出来的Angular.React.ES2015,其实都在知识里面,知识又分成两部分,一部分我把它叫做标准,它是相对而言比较稳定的,很少会出现一个标准被推翻的事情.另一部分则是技术,像jQ.React这些框架,像是MVC.FLUX这些架构的东西,这些东西是由各个公司主导的,变化就非常快,你看Gr

【python】抄写大神的糗事百科代码

照着静觅大神的博客学习,原文在这:http://cuiqingcai.com/990.html 划重点: 1. str.strip() strip函数会把字符串的前后多余的空白字符去掉 2. response.read().decode('utf-8','ignore')  要加'ignore'忽略非法字符,不然总是报解码错误 3. python 3.x 中  raw_input 改成 input 了 4. 代码最好用notepad++先写 格式清晰一点 容易发现错 尤其是缩进和中文标点的错误

【leetcode】Wildcard Matching(hard) ★ 大神太牛了

Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. '*' Matches any sequence of characters (including the empty sequence). The matching should cover the entire input string (not partial). The function p