<div align=center><img src="Example/Example/Images/JXCategoryView.png" width="405" height="63" /></div>
[![platform](https://img.shields.io/badge/platform-iOS-blue.svg?style=plastic)](#)
[![languages](https://img.shields.io/badge/language-objective--c-blue.svg)](#)
[![cocoapods](https://img.shields.io/badge/cocoapods-supported-4BC51D.svg?style=plastic)](https://cocoapods.org/pods/JXCategoryView)
[![support](https://img.shields.io/badge/support-ios%208%2B-orange.svg)](#)
A powerful and easy to use category view (segmentedcontrol, segmentview, pagingview, pagerview, pagecontrol) (腾讯新闻、今日头条、QQ音乐、网易云音乐、京东、爱奇艺、腾讯视频、淘宝、天猫、简书、微博等所有主流APP分类切换滚动视图)
与其他的同类三方库对比的优点:
- 使用协议封装指示器逻辑,可以为所欲为的自定义指示器效果;
- 提供更加全面丰富、高度自定义的效果;
- 使用子类化管理cell样式,逻辑更清晰,扩展更简单;
- 高度封装列表容器,使用便捷,完美支持列表的生命周期调用;
## Swift版本
如果你在找Swift版本,请点击查看[JXSegmentedView](https://github.com/pujiaxin33/JXSegmentedView)
## 效果预览
### 指示器效果预览
说明 | Gif |
----|------|
LineView | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/LineView.gif" width="343" height="80"> |
LineView延长 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/JDLineStyle.gif" width="343" height="80"> |
LineView延长+偏移 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/IQIYILineStyle.gif" width="343" height="80"> |
LineView🌈彩虹风格 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/RainbowLineView.gif" width="343" height="80"> |
DotLineView点线效果 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/IndicatorCustomizeGuide.gif" width="334" height="88"> |
BallView QQ黏性红点 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/QQBall.gif" width="343" height="84"> |
TriangleView 三角形底部 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TriangleBottom.gif" width="343" height="80"> |
TriangleView 三角形顶部 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TriangleTop.gif" width="343" height="80"> |
BackgroundView椭圆形 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/BackgroundEllipseLayer.gif" width="343" height="80"> |
BackgroundView椭圆形+阴影 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/BackgroundViewShadow.gif" width="343" height="80"> |
BackgroundView长方形 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/Rectangle.gif" width="343" height="80"> |
BackgroundView遮罩有背景 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleMask.gif" width="343" height="80"> |
BackgroundView遮罩无背景 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleMaskNoBackgroundView.gif" width="343" height="80"> |
BackgroundView渐变色 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/GradientBGIndicatorView.gif" width="350" height="80"> |
ImageView底部(小船) | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/IndicatorImageView.gif" width="343" height="137"> |
ImageView背景(最佳男歌手) | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/BackgroundImageView.gif" width="343" height="80"> |
ImageView滚动效果(足球) | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/Football.gif" width="343" height="135"> |
混合使用 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/Mixed.gif" width="343" height="80"> |
以下均支持上下位置切换:
`JXCategoryIndicatorLineView`、`JXCategoryIndicatorImageView`、`JXCategoryIndicatorBallView`、`JXCategoryIndicatorTriangleView`
### Cell样式效果预览
说明 | Gif |
----|------|
颜色渐变 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleColorGradient.gif" width="343" height="80"> |
大小缩放 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleZoom.gif" width="350" height="80"> |
大小缩放+底部锚点 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleLabelAnchorBottom.gif" width="350" height="80"> |
大小缩放+顶部锚点 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleLabelAnchorTop.gif" width="350" height="80"> |
大小缩放+字体粗细 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleZoomStrokeWidth.gif" width="350" height="80"> |
大小缩放+点击动画 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleZoomSelectedAnimation.gif" width="350" height="80"> |
大小缩放+cell宽度缩放 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleZoomCellWidth.gif" width="350" height="80"> |
TitleImage_Top | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleImageTop.gif" width="343" height="80"> |
TitleImage_Left | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleImageLeft.gif" width="343" height="80"> |
TitleImage_Bottom | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleImageBottom.gif" width="343" height="80"> |
TitleImage_Right | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/TitleImageRight.gif" width="343" height="80"> |
cell图文混用 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/CellMixed.gif" width="343" height="90"> |
Image | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/CellImage.gif" width="343" height="80"> |
数字 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/Number.gif" width="343" height="80"> |
红点 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/CellRedDot.gif" width="343" height="80"> |
多行文本 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/MultiLineText.gif" width="350" height="80"> |
多行富文本 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/AttributeView.gif" width="343" height="80"> |
Cell背景色渐变 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/CellBackgroundColorGradient.gif" width="343" height="80"> |
分割线 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/SeparatorLine.gif" width="343" height="80"> |
### 特殊效果预览
说明 | Gif |
----|------|
数据源过少<br/> averageCellSpacingEnabled默认为YES | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/averageCellSpacingEnabledYES.gif" width="343" height="80"> |
数据源过少<br/> averageCellSpacingEnabled为NO | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/master/JXCategoryView/averageCellSpacingEnabledNO.gif" width="343" height="80"> |
SegmentedControl<br/>参考[`SegmentedControlViewController`](https://github.com/pujiaxin33/JXCategoryView/tree/master/Example/Example/Examples/SegmentedControl/SegmentedControlViewController.m)类 | <img src="https://github.com/pujiaxin33/JXExampleImages/blob/mast
OC - 外置Safari
需积分: 0 137 浏览量
更新于2023-01-17
收藏 5.29MB ZIP 举报
标题 "OC - 外置Safari" 暗示我们讨论的是 Objective-C(简称 OC)编程语言中与苹果的 Safari 浏览器相关的外部扩展或插件开发。在本篇文章中,我们将深入探讨如何利用 Objective-C 来创建外置的 Safari 功能扩展,以及这个过程涉及的关键知识点。
我们需要理解Objective-C的基础。Objective-C 是一种面向对象的编程语言,它是苹果生态系统的核心语言,广泛应用于 macOS 和 iOS 开发。它基于 C 语言,添加了 Smalltalk 风格的消息传递机制,使得类和对象的交互更加灵活。
在 Safari 的扩展开发中,苹果提供了 Safari App Extension API,这是一个允许开发者构建可插入到 Safari 浏览器中的自定义功能的框架。这些扩展可以改变网页的显示方式、提供新的工具栏按钮、或者在后台处理网页内容。Objective-C 可以与这个框架无缝集成,创建强大且用户友好的浏览器扩展。
1. **Safari App Extension**:这是 Safari 插件开发的核心,由多个组件组成,包括一个主应用程序(通常是 Mac 应用),一个或多个扩展,以及一个可选的配置文件。主应用程序负责处理用户界面和扩展之间的通信,而扩展则是在 Safari 内部运行的代码,执行特定任务。
2. **使用 Xcode**:苹果的开发环境 Xcode 提供了创建 Safari App Extensions 的模板,简化了开发流程。在 Xcode 中,你可以设置扩展的标识符、权限,以及目标平台(如 macOS 或 iOS)。
3. **Info.plist 文件**:每个 Safari 扩展都有一个 Info.plist 文件,用于配置扩展的元数据,如扩展的名称、描述、图标,以及请求的权限。这个文件是扩展配置的关键部分。
4. **Objective-C 类**:在创建 Safari App Extension 时,你需要定义至少一个 Objective-C 类来实现扩展的行为。这个类通常继承自 `SFSafariExtensionHandler`,并重写其方法来响应 Safari 发送的事件。
5. **App Group**:为了使主应用程序和 Safari 扩展能够共享数据,你需要设置一个 App Group。这样,扩展可以存储和检索数据,即使在没有 Safari 运行的情况下也可以。
6. **安全性和权限**:Apple 对 Safari 扩展的安全性有严格的要求,确保用户的隐私得到保护。开发者需要遵循 App Sandbox,限制扩展的文件访问和网络权限。
7. **调试和测试**:Xcode 提供了内置的调试工具,可以让你在 Safari 中实时查看和调试扩展的行为。确保在发布前进行全面的测试,以确保扩展在各种条件下都能正常工作。
8. **发布和更新**:完成开发和测试后,你可以通过苹果的 Mac App Store 将扩展打包在主应用中一起发布。之后,可以通过更新主应用来提供扩展的新版本。
创建 OC - 外置Safari 需要深入理解 Objective-C 语言、Safari App Extension API 以及苹果的开发环境 Xcode。开发者需要关注安全、用户体验和性能优化,确保创建出既实用又可靠的浏览器扩展。
冯汉栩
- 粉丝: 328
- 资源: 528
最新资源
- 打卡没事,等你打完看到吗水浇地
- 电力变压器中的故障分析数据集
- 车载软件平台:面向未来的新型ADAS架构推动零事故愿景
- pytorch实现基于LSTM的高速公路车辆轨迹预测源码+数据集+说明(高分项目)
- pytorch实现基于LSTM的高速公路车辆轨迹预测源码+数据集+说明
- Java 飞机订票系统实训报告
- 教育领域的新年主题环创:从幼儿园到中学的创意布置与新年活动设计
- 智能小车路径规划 算法:RRT与Dubins相结合的方法,混合A*与Dubins相结合的方法 实现智能小车最短路径规划
- 枸杞虫害图像分类数据集【已标注,约9,000张数据】
- 基于Python(tkinter)+sqlite3的图书信息管理系统源码+数据库(高分课程设计)
- FOC+SMO+PLL的Simlink仿真模型
- 基于Java 和MySQL的飞机订票系统
- 信号处理辅助软件课程设计报告 信号处理辅助软件中GUIDE工具的计算器和绘图程序的设计与实现
- OpenCV计算机视觉基础 ppt(非教材自带ppt)
- 三相异步电机矢量控制仿真模型
- 多模态应用-基于BERT+ResNet的多种融合方式实现多模态的情感分析源码(高分大作业&课设)