一个优雅的占位图解决方案。适用于 UITableView 和 UICollectionView。

FMListPlaceholder

006tNc79gy1fz8ipkdw88j30va0b4q48.jpg

platform
languages
cocoapods
support

项目地址:https://github.com/yfming93/FMListPlaceholder

一个优雅的占位图解决方案。适用于 UITableView 和 UICollectionView。

一行代码处理空列表占位图逻辑

0x001 与其他的同类三方库对比的优点:

  • 首次进入列表占位图是不显示的。只在网络请求完成后,再次刷新列表时才处理相关逻辑;
  • 简单、高效、实用,最快一行代码就可以集成;
  • 提供更加全面丰富、高度自定义的效果;
  • 可一行代码设置一套自己项目专属的默认方案,然后也可以在某个特殊的列表单独二次自定义效果;

0x002 效果演示

006tNc79gy1fz8jghf5d0g30hj0dsx6p.gif

0x003 如何使用

  • CocoaPods 使用:
    • Podfile 文件新增 pod "FMListPlaceholder"
    • 打开终端, 切换到项目文件目录。 执行 pod install
    • 导入主头文件:#import <FMListPlaceholder.h>
  • 手动拖入 使用:
    • 下载演示工程,把 FMListPlaceholder 文件夹拖入自己项目中;
    • 导入主头文件:#import "FMListPlaceholder.h"
一行代码使用
_tableView.needPlaceholderView = YES;   //the same as UICollectionView

或者如下自定义

自定义全局默认
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[FMListPlaceholder fm_defaultBackgroundColor:UIColor.whiteColor coverName:@"xxx" tips:@"Sorroy,nil here!" tipsTextColor:UIColor.grayColor tipsFont:[UIFont systemFontOfSize:16] coverSize:CGSizeZero coverCenterYOffset:-30 coverSpaceToTips:10];return YES;
}

0x004 自定义

自定义某个特殊列表

 根据自己需求自行调用如下某些接口设置,UITableView 和 UICollectionView 接口相同。

[_tableView fm_emptyCoverName:@"fm_placeholder_nil" emptyTips:@" "];
[_tableView fm_backgroundColor:[UIColor colorWithRed:0.91 green:0.90 blue:0.90 alpha:1.00] tipsTextColor:UIColor.redColor tipsFont:nil];
[_tableView fm_coverCenterYOffset:-80 coverSize:CGSizeMake(90, 120) coverSpaceToTips:20];
// the same as UICollectionView


点击刷新逻辑

(如果需要点击刷新逻辑,可实现如下 block)

_tableView.reloadBlock = ^(UIScrollView *listView) {// Reload Handle is Here!// [listView.mj_header beginRefreshing]; // reloadData
};
更加详细请见演示工程

0x005 希望

  • 如果您在使用过程中有任何疑问或想要更多界面进行自定义,您可以发给我!

  • 如果您想参与本项目的维护或具有良好的设计风格,欢迎拉动请求!
  • 如果您在使用时有任何问题,请与我联系。
    • 博客网站: www.yfmingo.cn
    • 邮箱: yfmingo@163.com.
  • 希望能够共同完善这个项目,让它变得更强大,能够满足大多数用户的需求!

0x006 QQ 群

006tNc79gy1fz8aavckscj30f10kl0us.jpg

0x007 要求

  • iOS 9.0 or later
  • Xcode 9.0 or later

0x008 许可证

All source code is licensed under the MIT License.

转载于:https://www.cnblogs.com/yfming/p/10283096.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/249810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中 关于$emit的用法

1、父组件可以使用 props 把数据传给子组件。 2、子组件可以使用 $emit 触发父组件的自定义事件。 vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( event, fn );//监听event事件后运行 fn&#xff1b; 例如&#xff1a;子组件&#xff1a; <template><di…

vue-transition动画

demo点击显示与消失 <div id"demo"><button v-on:click"show !show">Toggle</button><transition name"fade"><p v-if"show">hello</p></transition> </div> <script> new V…

Java String:重要到别人只能当老二的字符串类

字符串&#xff0c;是Java中最重要的类。这句肯定的推断不是Java之父詹姆斯高斯林说的&#xff0c;而是沉默王二说的&#xff0c;因此你不必怀疑它的准确性。 关于字符串&#xff0c;有很多的面试题&#xff0c;但我总觉得理论知识绕来绕去没多大意思。你比如说&#xff1a;Str…

Java基础教程:多线程基础(3)——阻塞队列

Java基础教程&#xff1a;多线程基础&#xff08;3&#xff09;——阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题&#xff1a;生产者和消费者在同一时间段内共用同一存储空间&#xff0c;生产者向空间里生产数据&#xff0c;而消费者取走数据。 模拟情景…

001.Linux开机启动过程

相关Linux启动过程解析&#xff0c;此作为通用启动参考&#xff1a; 转载于:https://www.cnblogs.com/itzgr/p/10285833.html

【01】《正则表达式必知必会》(已看)(仅存放)

【01】《正则表达式必知必会》 共149页。扫描版&#xff0c;中文版。Sams Teach Yourselef Regular Expressions in 10 minutesBen Forta著。杨涛 翻译【】魔芋&#xff1a;这本书已经没有用了。内容已吸收。内容较为基础&#xff0c;也很全面。** 附件列表 链接&#xff1a;ht…

什么是高并发,如何避免高并发

之前我将高并发的解决方法误认为是线程或者是队列可以解决&#xff0c;因为高并发的时候是有很多用户在访问&#xff0c;导致出现系统数据不正确、丢失数据现象&#xff0c;所以想到 的是用队列解决&#xff0c;其实队列解决的方式也可以处理&#xff0c;比如我们在竞拍商品、转…

到底多大才算高并发?

一、什么是高并发 定义&#xff1a; 高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。关键指标&#xff1a; -响应时间(Response Time) -吞吐量(Throughput) -每秒查询率QPS(Query Per Second) -每秒事务处理量TPS(Transaction Per Second) -同时在…

eclipse安装maven插件

1、在线安装插件 a.打开eclipse&#xff0c;菜单“Help”-“Install New Software...” b.在Work with 地址栏输入&#xff1a;http://download.eclipse.org/releases/对应eclipse版本名称 c.在filter框中输入maven d.选择“Collaboration”-“m2e - Maven Integration for Ecl…

VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法

右键点击项目属性&#xff0c;选择打包/发布 Web&#xff0c;勾选 排除生成的调试符号&#xff1a; 再次发布&#xff0c;就不会再生成.pdb文件 转载于:https://www.cnblogs.com/JoinLet/p/10297254.html

分布式学习路线

由于分布式系统所涉及到的领域众多&#xff0c;知识庞杂&#xff0c;很多新人在最初往往找不到头绪&#xff0c;不知道从何处下手来一步步学习分布式架构。 本文试图通过一个最简单的、常用的分布式系统&#xff0c;来阐述分布式系统中的一些基本问题。 负载均衡分布式缓存分…

IDEA开发vue.js卡死问题

在执行cnpm install后会在node_modules这个文件下面生成vue的相关依赖文件&#xff0c; 这个时候当执行cnpm run dev命令时&#xff0c;会导致IDEA出现卡死的问题&#xff0c;解决方法如下&#xff1a; 转载于:https://www.cnblogs.com/heqiuyong/p/10301925.html

各种缓存介绍

说起缓存相关技术&#xff0c;老多了&#xff0c; memcache、redis、squid、varnish、web cache、 CDN等等。缓存技术五花八门&#xff0c;但这些技术间有什么共性的地方&#xff0c;又有什么不同的地方呢&#xff1f;答案肯定是有的&#xff0c;这次为大家分享及整理一下缓存方…

CentOS6.8 安装node.js npm

环境&#xff1a;CentOS6.8_X64系统 一、到官方下载最新的编译好的安装文件&#xff0c;目前是6.9.4。 $>cd /usr/local/src #定位到这个目录&#xff0c;下载的文件会在这个目录#使用wget下载&#xff08;这个内置命令&#xff09; $>wget https://nodejs.org/dist/v8.1…

[上下界网络流][二分] Bzoj P2406 矩阵

题目描述 输入输出格式 输入格式&#xff1a; 第一行两个数n、m&#xff0c;表示矩阵的大小。 接下来n行&#xff0c;每行m列&#xff0c;描述矩阵A。 最后一行两个数L&#xff0c;R。 输出格式&#xff1a; 第一行&#xff0c;输出最小的答案&#xff1b; 输入输出样例 输入样…

PYTHON 爬虫笔记七:Selenium库基础用法

知识点一&#xff1a;Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统&#xff0c;包含了测试的录制&#xff08;selenium IDE&#xff09;,编写及运行&#xff08;Selenium Remote Control&#xff09;和测试的并行处理&#xff08;Sele…

RPC简介及框架选择

简单介绍RPC协议及常见框架&#xff0c;对比传统restful api和RPC方式的优缺点。常见RPC框架&#xff0c;gRPC及序列化方式Protobuf等 HTTP协议 http协议是基于tcp协议的&#xff0c;tcp协议是流式协议&#xff0c;包头部分可以通过多出的\r\n来分界&#xff0c;包体部分如何分…

JAVA中几种常用的RPC框架介绍

RPC是远程过程调用的简称&#xff0c;广泛应用在大规模分布式应用中&#xff0c;作用是有助于系统的垂直拆分&#xff0c;使系统更易拓展。Java中的RPC框架比较多&#xff0c;各有特色&#xff0c;广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言&#xff0…

WC2019 自闭记

不咕了 Day 1 2019/1/24 辣么快就到冬令营了&#xff0c;还沉迷于被柿子吊打的状态的菜鸡一时半会还反应不过来。我们学校这次分头去的冬令营&#xff0c;差点上不了车。这次做的动车居然直达广州&#xff0c;强啊。 然鹅还是到太晚&#xff0c;没饭吃了。路上花了15大洋买了个…

跨语言RPC框架Thrift详解

一、 概念 Apache的Thrift软件框架&#xff0c;是用来进行可伸缩的、跨语言的服务开发&#xff0c;它通过一个代码生成引擎来构建高效、无缝的服务&#xff0c;这些服务能够实现跨语言调度&#xff0c;目前支持的语言有&#xff1a; C, Java, Python, PHP, Ruby, Erlang, Perl,…