IOS 常用UI控件

Posted Andy__Wu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 常用UI控件相关的知识,希望对你有一定的参考价值。

目录


具体内容


下拉刷新

  • EGOTableViewPullRefresh - 最早的下拉刷新控件。
  • SVPullToRefresh - 下拉刷新控件。 
  • MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)
  • XHRefreshControl - XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。(国人写)
  • CBStoreHouseRefreshControl - 一个效果很酷炫的下拉刷新控件。
  • BreakOutToRefresh - 一个下拉刷新打砖块的开源 Swift 库,能让用户在等待下拉刷新的时候边玩撞球游戏边等待。
  • KYJellyPullToRefresh - 实现弹性物理效果的下拉刷新,神奇的贝塞尔曲线,配合UIDynamic写的一个拟物的下拉刷新动画。
  • MHYahooParallaxView - 类似于Yahoo Weather和News Digest首屏的视差滚动。 
  • SDRefreshView - 简单易用的上拉和下拉刷新(多版本细节适配)。
  • ZLSwiftRefresh - swift下拉刷新/上拉加载更多,支持自定义动画,集成简单,兼容UITableView/CollectionView/ScrollView/WebView。
  • BreakOutToRefresh - swift,上拉和下拉刷新。
  • GearRefreshControl - swift,上拉和下拉刷新。
  • refresher - swift,上拉和下拉刷新。
  • 可展开/收缩的下拉菜单–SvpplyTable - 一个可展开可收缩的下拉菜单,类似Svpply app。
  • ODRefreshControl - 原ios6上的橡皮糖刷新样式,很有意思。现在也很多大的 App 在用,比如虾米音乐和 QQ 客户端。
  • PullToMakeSoup - PullToMakeSoup, 自定义下拉刷新的动画效果:煮饭, Yalantis新作!
  • TwitterCover - Twitter iOS客户端的下拉封面模糊效果。
  • Replace-iOS - Replace-iOS 让人眼前一亮的下拉刷新(iOS)。
  • ReplaceAnimation.swift - 基于 @ZeeYoung欧阳哲 同学的创意下拉刷新动画实现。值得称赞还有额外增加了“取消及滚动”效果支持。
  • Animations - 封装了一下,使用的时候只要两行代码。一些动画的飞机稿,都是一些单独分离出来的用于测试的子动画,现在统一归类一下。
  • PullToBounce - 下拉刷新的动画 for UIScrollView。
  • WaterDropRefresh - 仿Path 水滴的下拉刷新效果 还有视差滚动。
  • ESRefreshControl - 仿新浪微博、百度外卖、网易新闻下拉刷新样式Demo(仅供参考)。
  • WaveRefresh - 下拉刷新水波纹动画。
  • DGElasticPullToRefresh - 是一款带有弹性效果的 iOS 下拉刷新组件。
  • CALayerAnimationDemoh - 双向注水动画下拉刷新组件,使用CALayer的mask实现。
  • BanTangAnimation - 半糖下拉刷新的原理。简单来说是利用CGGlyph,字符图形转换成cgpath,然后绘制strokeEnd动画。把timeoffset和scrolloffset结合就行了。

模糊效果

  • FXBlurView - 是一个UIView子类,支持iOS5.0以上版本,支持静态、动态模糊效果,继承与UIView的模糊特效。
  • VVBlurPresentation -很简单易用的在原来viewconntroller基础上做模糊,然后present新的viewcontroller的。
  • UICustomActionSheet - 通过模糊背景来着重强调与菜单相关的元素–对话框 里面已经收藏。
  • SABlurImageView - 支持渐变动画效果的图像模糊化类库。P.S. 与前几天推存类库 SAHistoryNavigationViewController 是同一位作者。
  • Blurable.swift - swift模糊组件。

AutoLayout

  • Masonry - Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性( 使用介绍1  使用介绍2),iOS自适应前段库-Masonry的使用),Masonry、Classy、ClassyLiveLayout介绍使用DEMO 视图居中显示、子视图含边距、视图等距离摆放、计算ScrollView的contentsize。
  • Classy - Classy是一个能与UIKit无缝结合stylesheet(样式)系统。它借鉴CSS的思想,但引入新的语法和命名规则,Classy官网Masonry、Classy、ClassyLiveLayout介绍
  • ClassyLiveLayout - ClassyLiveLayout通过结合Classy stylesheets与Masonry一起使用,能够在运行的模拟器中微调Auto Layout约束实时显示效果的工具,Masonry、Classy、ClassyLiveLayout介绍
  • Snap - Snap是Masonry Auto Layout DSL的Swift版本,是一款轻量级的布局框架,使用了更良好的语法封装了AutoLayout。Snap支持iOS和OS X。
  • SnapKit - 就是“snap”, –swift 喜欢自动布局吗?当然喜欢!至少在storyboard中创建时会喜欢。 在代码中纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,在board中用上它,你可以简单直观地编写约束了。
  • PureLayout - PureLayout 是 iOS & OS X Auto Layout 的终极 API——非常简单,又非常强大。PureLayout 通过一个全面的Auto Layout API 扩展了 UIView/NSView, NSArray 和 NSLayoutConstraint,仿照苹果自身的框架。
  • UIView-AutoLayout -  
    Deprecated in favor of PureLayout, which includes OS X support:https://github.com/smileyborg/PureLayout
  • Cartography - Cartography 是用来声明 Swift 中的 Auto Layout,无需输入任何 stringly 就可设置自己 Auto Layout 的约束声明。
  • Auto-Layout-Showcase - swift,AutoLayout 进阶 Demo,宽高比约束、比例约束、不等约束、视差约束、低优先级约束等高级用法,无需写码即可进行复杂页面布局,Demo 还动态模拟了各屏幕下的效果。来自百度知道 iOS 小组的内部分享。
  • UIView-FDCollapsibleConstraints - 一个AutoLayout辅助工具,最优雅的方式解决自动布局中子View的动态显示和隐藏的问题。第二个Demo模拟了一个经典的FlowLayout,任意一个元素隐藏时,底下的元素需要自动“顶”上来,配合这个扩展,你可以在IB里连一连,选一选,不用一行代码就能搞定。
  • Autolayout_Demo - 在项目中用自动布局实现的类似抽屉效果。
  • 当view隐藏的时候也隐藏其autolayout的NSLayoutAttribute - 当view隐藏的时候也隐藏其autolayout的NSLayoutAttribute,从而不用大量的代码工作。
  • SDAutoLayout - AutoLayout 一行代码搞定自动布局!支持Cell、Label和Tableview高度自适应,致力于做最简单易用的AutoLayout库。
  • Neon.swift - 功能强大的 UI 布局神器。
  • EasyPeasy.swift - 编程方式自动布局框架库。

富文本

  • RTLabel - RTLabel 基于UILabel类的拓展,能够支持html标记的富文本显示,它是基于Core Text,因此也支持Core Text上的一些东西。32位,很久没有更新了。
  • RTLabel - 富文本,RTLabel支持64位。 
  • TYAttributedLabel - TYAttributedLabel。 简单易用的属性文本控件(无需了解CoreText),支持富文本,图文混排显示,支持添加链接,image和UIView控件,支持自定义排版显示。
  • TQRichTextView - 用于做富文本视图控件显示,用于即时通讯的表情显示,以及资源评论的富文本显示。
  • TTTAttributedLabel - 一个文字视图开源组件,是UILabel的替代元件,可以以简单的方式展现渲染的属性字符串。另外,还支持链接植入,不管是手动还是使用UIDataDetectorTypes自动把电话号码、事件、地址以及其他信息变成链接。用TTTAttributedLabel创建变化丰富的UILabel - 网易新闻iOS版使用。
  • MLEmojiLabel - 自动识别网址、号码、邮箱、@、#话题#和表情的label。可以自定义自己的表情识别正则,和对应的表情图像。(默认是识别微信的表情符号),继承自TTTAttributedLabel,所以可以像label一样使用。label的特性全都有,使用起来更友好更方便。
  • FXLabel - FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel中。FXLabel还提供了更多控件,可以对字体行距、字体间距等进行调整。
  • WFReader - 一款简单的coretext阅读器,支持文本选择、高亮以及字体大小选择等。
  • WPAttributedMarkup - WPAttributedMarkup is a simple utility category that can be used to easily create an attributed string from text with markup tags and a style dictionary。
  • KMPlaceholderTextView - 可显示多行 placeholder 的 textView,可以在IB里面设置 – swift。
  • HHFlashSwitch - 一个另类的UISwitch,选择后,背景水波扩散变色效果。 
  • UUColorSwitch - Switch 开关动画效果,当打开开关时,Switch可实现平滑渲染过渡到父视图的效果。
  • UITextViewDIYEmojiExample - UITextView编辑时插入自定义表情-简单的图文混编。 
  • Shimmer - BlingBling闪光效果,酷炫的Label的效果,可以用于加载等待提示。
  • ZSSRichTextEditor - 适用于iOS的富文本WYSIWYG编辑器,支持语法高亮和源码查看。ZSSRichTextEditor包含所有WYSIWYG标准的编辑器工具。
  • RichEditorView - swift,一套可定制富文本编辑器组件及示例。功能完整、代码简练、实现逻辑巧妙(编辑器核心与 WebView 结合,采用 HTML5 contentEditable 编辑模式,执行JS 配套命令 execCommand 实现富文本编辑功能)。
  • DTCoreText - 可以解析HTML与CSS最终用CoreText绘制出来,通常用于在一些需要显示富文本的场景下代替低性能的UIWebView。DTCoreText源码解析
  • CSGrowingTextView - 用作即时通讯文本框和评论文本框使用,可以显示多行输入。 
  • MarkdownTextView - 显示Markdown的TextView。
  • SwiftyMarkdown - 用swift写的markdown解析库。
  • 高仿微信限定行数文字内容 - 采用Autolayout高仿微信纯文字限定行数。
  • FuriganaTextView - 实现复杂的日文韩文排版。
  • ParkedTextField - 带固定文本的输入组件。 
  • LTMorphingLabel - swift 能够实现文字变形动画效果的Label,用Swift写的一个能够实现文字变形动画效果的Label,很炫。
  • GJCFCoreText - 图文混排。
  • AttributedLabel - 显示性能数量级 UILabel 的 AttributedLabel。无畏无惧、挑战权威。
  • FFLabel - 自动检测 URLs, @username, #topic# 等关链词(提供响应扩展)。实用的标签文本小组件。
  • TextFieldEffects - 标准的UITextField有些枯燥么?来认识一下TextFieldEffects吧!废话不多说,只要看几个例子,是啊,都是些简单的dropin控制器。甚至可以在storyboard中使用IBDesignables。
  • AutocompleteField - 可应用于 iOS 应用中文字输入框自动补全的场景, 兼容到 iOS 8。
  • Splitflap.swift - 可用于快速给 iOS 应用创建文字翻转的动画效果。
  • WordPress-Editor-iOS - 一个文本编辑器 简书和新浪博客都在用。
  • YYText - 功能强大的 iOS 富文本框架。
  • placeholder_TextView - 带有placeholder的TextView:带有提示信息的textview,使用懒加载的思想,支持扩展、自定义,类似许多APP内部的意见反馈页面 。
  • FloatLabelFields.swift - FloatLabelFields.swift浮动标签输入效果类。
  • M80AttributedLabel - M80AttributedLabel实现文字与表情的混排。一般使用气泡作为背景。
  • HPGrowingTextView - HPGrowingTextView聊天输入文字,可以根据输入文字的多少自动改变输入框的高度。
  • cleartext-mac.swift - 提供一千个常用单词的编辑器。
  • GlitchLabel.swift - 可定制“黑(故障)文字标签”类库,熟称晃瞎你的眼文字标签。

图表

  • PNChart - 国内开源作者,动态的图表。
  • swift-linechart - 功能完整、实用的折线图组件。使用方便,参数配置简单。是不可多得的优质组件–swift。
  • ios-charts - 一款优秀 android 图表开源库 MPAndroidChart 的 Swift 语言实现版(支持 Objective-C 和 Swift 调用)。缺省提供的示例代码为 Objective-C。
  • TEAChart - xhacker/TEAChart 一个简洁的 iOS 图表库,支持柱状图、饼图以及日历等。
  • YOChartImageKit - 支持在watchOS上绘制图表,看它最近更新挺勤快的,可以关注一下。
  • RealtimeGradientText - Fun With CALayer Mask 刚好今天开源了一个有趣的项目 RealtimeGradientText,所以也好聊一下 CALayer 的 Mask,说明
  • XYPieChart -XYPieChart:饼状图, 饼图, 数据统计, 数据可视化,可以在图形上标注数据。效果十分漂亮,而且没有用到一张图片。 
  • ZFChart - 模仿PNChart写的一个图表库,用法简单,暂时有柱状图,线状图,饼图三种类型,后续可能会更新新的类型。 

表相关与Tabbar

  • SWTableViewCell - 国内开源作者,带很多手势的表单元格。
  • MCSwipeTableViewCell - 带很多手势的表单元格。
  • TMQuiltView - 瀑布流。
  • XRWaterfallLayout - 超简单的瀑布流实现,实现说明
  • WaterfallFlowDemo - 一个简单的UICollectionView瀑布流布局演示demo。
  • XLForm - 很多表格类的table,写法更高冷一点,推荐使用。
  • Eureka.swift - Eureka 是 XLForm 的 Swift 的移植版本, 一个可以帮助开发者们快速构建 iOS 各种复杂表单的库, 具有较高的可扩展性, 方便自定制样式。
  • RETableViewManager - 可以十分方便地生成各种样式、各种功能的TableView。只要开发者能想到的列表效果或者功能,都可以利用这份代码迅速编写出来。比如,之前要实现一个填写各种资料的列表,可能需要很多代码,现在只需要几行代码就可以实现。 
  • UIScrollSlidingPages - 允许添加多视图控件,并且可以横向滚动。有点类似于Groupon app。
  • HBHorizontalTableView - swift,TableView 横向滚动小示例(仿照 AppStore 应用展示)。
  • HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。
  • SYJiugonggeTableView - tableView封装的九宫格。
  • UUChatTableView - UUChatTableView 气泡聊天界面,支持文本、图片以及音频的气泡聊天界面。源码推荐说明
  • Chats - 聊天 UI 示例程序。此项目应该只为演示或学习之用,没有服务器 – swift。 
  • Atlas-iOS - 快速在iOS里集成聊天功能,类似开源版本的环信。Layer家开源了一套聊天app界面的解决方案.看起来很赞,很多蛮复杂的东西直接都帮封好了。不得不说现在做app开发真是很简单,大部分时间搭积木就可以了。官方网站
  • Chatto.swift - Chatto.swift:轻量级聊天应用框架及示例。文字及图片可扩展输入栏,汽泡效果等聊天核心特性,分页及自动布局完善。
  • DLSlideView - DLSlideView对常见的顶部Tab页点击、滑动分页做了封装。它使用基于ViewController的container特性(而不是scrollview)来管理各个子页面,以支持无限分页,源码推荐说明
  • VOVCManager - 页面管理器:1.跳转指定页面,只需要知道viewController的Class名,如果有storyboard,则需要指定storyboard名;2.无需添加基类;3.支持URLScheme跳转指定页面。
  • MBXPageViewController - 简洁快速的页面切换–MBXPageViewController,带有按钮控件的UIPageController,非常整洁、简单以及快速。该项目通过三种形式展示页面之间的切换,比如导航栏上的多个tab切换、页面左右两端箭头指示切换,以及使用分段控件。
  • PagerTab - UIScrollView实现滑动转换页面,类似网易云音乐iOS版的页面滑动切换效果。
  • GUITabPagerViewController - 多个tab滑动切换。
  • VOMetroLayoutDemo - Metro风格的UICollectionView, 目前只支持横向布局,仅在iPad上应用。
  • KYCellAnimation - 给UITableViewCell增加进入的动画。
  • COBezierTableView - swift,通过编辑 Bezier 曲线四点位置设置 TableView 内 Cell 及对应按扭位置。实验效果很赞。
  • RDVTabBarController - 一个TabBar组件,可以方便设置底部菜单的文字图片,点击效果,小红点提示等。
  • LxTabBarController - 改变了原生tabbar切换tab时的生硬效果,并加入滑动切换手势(有和界面上的其它手势发生冲突的风险,可根据具体项目予以关闭),swift版本
  • WXTabBarController - 在系统 UITabBarController 的基础上完美实现了安卓版微信 TabBar 的滑动切换功能,单手操作 iPhone 6 Plus 切换 TabBar 一直是一件很痛苦的事情,而滑动切换是一种不错的解决方案,支持屏幕旋转。
  • GooeyTabbar - 皮筋式弹性缩放工具栏示例及演示。
  • CYLTabBarController - 低耦合集成TabBarController,最低只需传两个数组即可完成主流App框架搭建。
  • 横向展示文本内容的自定义cell - 可以横向展示文本内容的自定义cell,根据文本无限滚动。
  • UITableView-FDTemplateLayoutCell - UITableView-FDTemplateLayoutCell 是一个方便缓存 UITableViewCell 的高度的框架。
  • ExpandingStackCells - 采用 UIStackView 实现表格单元格扩展内容显示示例及解决方案。
  • FDStackView - 可以将 UIStackView 的最低支持版本拉低到 iOS6,无需配置,没有代码侵染,扔到工程里后直接用系统 UIStackView 的 API 即可,同时兼容 Storyboard。 
  • Sapporo - swift 单元格模型驱动的集合视图管理器组件。又一个超实用的“轮子”。
  • MDIHorizontalSectionTableViewController - 根据产品需求开源了一个交互项目,可以理解为横向Section的TableView,section和cell同时支持拖拽,后续安卓版本也会开源出来。
  • JZNavigationExtension - 多功能导航控制器,可以透明返回栏。
  • NavTopImage.swift - NavigationController动态缩放titleView。
  • QuickRearrangeTableView - 基于 UITableView 的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。
  • uicollectionview-reordering - UICollectionViews的拖拽(拖动、移动)效果,实例教程.
  • DZNEmptyDataSet - DZNEmptyDataSet算是一个很标准的iOS内建方式,适合用来处理空的table view和collection view。会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理。
  • LLNoDataView - 超简单的空数据提示通用View支持UIScrollView、UITableView、UICollectionView、UIWebView。
  • MGSwipeTableCell - 另一个常见于很多应用中的UI组件,苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述,也是最好的。
  • XLPlainFlowLayout - 可以让UICollectionView的header也支持悬停效果,类似于tableView的Plain风格。
  • WMPageController - 一个方便的 pageContrller 的控件,里面还包括滚动视图。
  • PSTCollectionView - PSTCollectionView。
  • LLRiseTabBar-iOS - 直接使用系统的特性实现的tabbar,比较简单。
  • MTMaterialDelete - 非常有趣的Material Design动画,动画删除表里面的单元格。
  • paper-onboarding.swift - 漂亮的 material design 风格页面滑块。示例完整,易用。
  • BusyNavigationBar - 进度条式NavigationBar导航条。
  • ReorderableGridView-Swift - 拖拽排序卡片。
  • LGSettingView - LGSettingView仅需三句代码即可快速集成设置界面,免去每次开发新应用都要重新布置设置界面的烦恼。
  • 微博cell自动布局 - 使用autoLayout对微博的cell进行自动布局,自适应cell的高度。
  • TreeTableView - ZYTreeTableView:TreeView 模仿好友列表的实现方式。
  • ZWSlideViewController - ZWSlideViewController多页滑动视图控制器(类似新闻类门户APP),可以用最简单的继承方法使用,也可以不用继承,只用菜单或主视图页面,可实现丰富的定制,可以使用在多种不同形态的APP下,还可以将其做为多页或多图的滑动介绍。
  • ZYThumbnailTableView.swift - 可展开型预览TableView,开放接口,完全自由定制。实现教程
  • XWCatergoryView - 一个轻量级的顶部分类视图控件,只需要通过简单的设置,你就可以快速集成该控件, 控件目前暂时有底部横条移动,椭圆背景移动,文字缩放,文字颜色变化,和文字颜色渐变五种效果,五种效果可以叠加使用也可以单一使用。实现教程
  • jingDongFenLei - 简单仿写京东分类中的多级分类页面。
  • WHC_CollectionViewFramework.swift - 高仿支付宝可拖拽排序编辑动画效果cell的CollectionView集合视图。
  • SwipeViewController.swift - 一款好用的页面滑动和标签选项卡类库及示例。功能相当于 Objective-C 版 RKSwipeBetweenViewControllers。
  • RKSwipeBetweenViewControllers - 页面滑动和标签选项卡类库。
  • FriendSearch - 两种UI的搜索,搜索的算法可以满足中英文互搜,联想搜索等,其中还包含对一组数据自动进行按字母分组等功能。
  • YX_UITableView_IN_UITableView - UITableview嵌套UITableView案例实践(仿淘宝商品详情页实现),项目讲解
  • TabDrawer.swift - 更适合单手操作的可定制 Tab Bar 组件库。P.S. 自动布局选择了 EasyPeasy。
  • SFFocusViewLayout.swift - UICollectionViewLayout实现的图片浏览器。

隐藏与显示

  • SlideTapBar - 滚动栏菜单,向上滚动时隐藏tabbar,向下滚动马上显示tabbar。
  • FoldingTabBar.iOS - 可折叠Tab Bar和Tab Bar Controller。
  • LTNavigationBar - LTNavigationBar为app导航栏添加动态着色效果,可自定义其背景色。Demo包含:1.变换背景色;2.滚动视图,导航栏和状态栏重叠。实现教程
  • KMNavigationBarTransition - LTNavigationBar在右滑返回的时候NavigationBar显示都不完美,KMNavigationBarTransition一个用来统一管理导航栏转场以及当 push 或者 pop 的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。
  • HYNavBarHidden - 导航条滚动透明,超简单好用的监听滚动,导航条渐隐的UI效果实现。
  • BLKFlexibleHeightBar - 固定Header的效果库,一个拥有非常灵活高度的标题栏,可以为使用软件的用户提供更多的阅读和滑动空间,现在已经被众多app所采用。
  • JXT_iOS_Demos - AboutNavigationBar:一些关于navigationBar的非常规的但是较为实用的操作,包括利用毛玻璃、动态透明、动态隐藏,以及头视图的动态缩放,并同时涉及了statusBar的动态设置(换色)。教程
  • NavigationBarScaleViewDemo - iOS导航条自由缩放头像效果。原理剖析

HUD与Toast

  • MBProgressHUD - 最多人用的loading。
  • EBuyCommon - 1.基于MBProgressHUD实现得图形加载提示方式,及其它标题方式提醒。2.弹窗。
  • SVProgressHUD - SVProgressHUD的loading,如果你需要定制化的等待提示器,这个就是了(也许是最好的)。
  • ProgressHUD - ProgressHUD的loading,使用最简单。
  • MMProgressHUD - 设置HUD出现和消失的方式(包括上下、左右、淡入淡出、放大缩小等等),设置HUD的内容(可以在HUD中加入帧动画、动态图片等等),设置HUD出现时的底部覆盖层颜色,等等。总而言之,这是一份集大成的HUD代码。慢慢看视频吧,囊括了所有效果。
  • WSProgressHUD - 一个小巧精致的HUD,支持添加到自定义View上, 还有更多小细节.。
  • PreLoader - 一个很有意思的HUD loading ,通过运动污点和固定污点之间的粘黏动画吸引用户的眼球跟踪,能有效分散等待注意力。PreLoader的实现讲解

对话框