Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

YYKit

License MITCarthage compatibleCocoaPodsCocoaPodsSupportBuild Status

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 iOS 6.0+ and Xcode 8.0+.

Notice

I want to use the APIs as if it was provided by system, and I don't add prefix in these categories. I do not 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 组件。

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

演示项目

查看并运行 Demo/YYKitDemo.xcodeproj


安装

CocoaPods

  1. 在 Podfile 中添加 pod 'YYKit'
  2. 执行 pod installpod 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.mNSThread+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.0Xcode 8.0

注意

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

许可证

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

相关文章

iOS 保持界面流畅的技巧

About

A collection of iOS components.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages