首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS 面向协议方式封装空白页功能

我们现在的目的就是让目标控制器或者目标视图在遵守我们的协议后,就可以有实现空白页的功能。...,或许也有人写在UIView里,不过这里先按UIViewController来写吧 // MARK:- UIViewController - 空视图占位协议 public extension LXFEmptyDataSetable...,非常地恰巧,我们定义的方法lxf_EmptyDataSet需要外界将UIScrollView传递进来,在DZNEmptyDataSet的数据源方法和代理方法也有scrollView。...可以使用Cocoapods的方式来安装使用 pod 'LXFProtocolTool' 我也将 iOS - Swift 面向协议编程(二) 中提及的通过协议便捷加载xib的功能也集成了进来。...大家可以根据自己的需要在Podfile写明要安装的功能 Xib加载 pod 'LXFProtocolTool/LXFNibloadable' 空白视图 pod 'LXFProtocolTool/LXFEmptyDataSetable

1.5K50

iOS 面试策略之系统框架-UIScrollView及其子类

一般情况下我们对 UIScrollView 的操作,例如 addSubview 这样的操作都是在 contentView 上进行。...请说明并比较以下协议:UITableViewDelegate,UITableViewDataSource 关键词:#数据 #UI 一般在 UIViewController 上配置 UITableView...Supplementary Views 的布局一般可以在 UICollectionViewFlowLayout 中实现完成。...9.说说实现预加载的方法 关键词:#网络传输 #无限滚动 #Threshold 在实际开发中,列表经常需要随着滑动而不停的展示新的内容。在滑动到一定程度后,我们就需要发送网络请求,以获得新的数据。...由于我们在 prepare() 中已经完成相应计算,此时只需返回对应 indexPath 的特定属性即可。

2.7K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    阅读器多种翻页的设计与实现

    UIPageViewControllerTransitionStyleScroll; 支持翻页的时候,对背面做一个自定义展示,需要打开self.pageVC.doubleSided = YES;; 初始化界面的时候和平移一样,但是在使用过程中再调用...效果分解: 1、当用户滑动的过程,视图要跟随手指的移动; 2、当用户往上滑然后松开时,视图要带有加速度的往上滑动;(附加特性:在滑动过程中用户可以通过重复这个行为加速滑动) 3、在视图滑动的过程中...通常iOS实现滑动会有两大选择:UIScrollView和UITableView;(UICollectionView和UITableView类似) UIScrollView存在一个较大的局限:上面的视图资源无法回收利用...以下图为例,我们使得UIScrollView的contentSize为(view.width, 3*view.height),偏移contentOffsetY为view.height(初始状态相当于将窗口放置在中间...遇到的问题(Q&A): Q:如何实现UIScrollView改变offset,但是继承原来的速度?

    3.4K10

    iOS 自定义转场动画

    transitionContext containerView]; //如果加入了手势交互转场,就需要根据手势交互动作是否完成/取消来做操作,完成标记YES,取消标记NO,必须标记,否则系统认为还处于动画过程中,...//必要调用实现的系统方法 //手势过程中,通过updateInteractiveTransition设置转场过程动画进行的百分比,然后系统会根据百分比自动布局动画控件,不用我们控制了 [self...同上 3、在push动画之前设置导航控制器的转场动画代理,转场时最上层的视图控制器需要遵循的协议,并设置为代理,并实现如下代理方法: /...,就不需要触发滑动手势, return NO; } return YES; } 解决UIScrollView的滑动手势与全屏侧滑手势的冲突 创建一个UIScrollView...的类别UIScrollView+GestureConflict,重写如下方法: -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer

    1.1K90

    iOS 自定义转场动画

    transitionContext containerView]; //如果加入了手势交互转场,就需要根据手势交互动作是否完成/取消来做操作,完成标记YES,取消标记NO,必须标记,否则系统认为还处于动画过程中,...//必要调用实现的系统方法 //手势过程中,通过updateInteractiveTransition设置转场过程动画进行的百分比,然后系统会根据百分比自动布局动画控件,不用我们控制了 [self...同上 3、在push动画之前设置导航控制器的转场动画代理,转场时最上层的视图控制器需要遵循的协议,并设置为代理,并实现如下代理方法:...判断导航控制器是否只有一个子控制器,如果只有一个子控制器,肯定是根控制器 if (self.childViewControllers.count == 1) { // 表示用户在根控制器界面...,就不需要触发滑动手势, return NO; } return YES; } 解决UIScrollView的滑动手势与全屏侧滑手势的冲突 创建一个UIScrollView

    1.3K50

    在WebKit中并行加载外部脚本译:

    作者:Tony Gentilcore 原文:http://webkit.org/blog/1395/running-scripts-in-webkit/ WebKit 正式版已经正式支持HTML5中中其它元素下载的情况下,以异步方式下载JavaScript,从而大大提高了网页加载速度。...虽然围绕性能优化的问题已经有了很多不错的技术(参见:延迟加载,异步加载),但是他们都无法避免地引入了额外的代码,或是针对浏览器的Hacks写法。...async 脚本会在自身被下载完、window.load 事件执行前立刻被执行,这意味着 async 脚本有可能(应该说很可能)不会按照它们在页面中出现的顺序被执行;而 defer 脚本则一定是按照它们在页面中出现的先后顺序执行...,准确地说,是在整个页面被解析完成之后,文档的DOMContentLoaded事件之前执行。

    1.8K70

    UIViewController生命周期

    一、视图控制器 UIViewController采用懒加载的方式,也就是说第一次访问到view属性时才会加载或创建它。...但总的实现原理非常类似 通过这种方式加载视图,需要调用UIViewController类的initWithNibName:bundle:方法 通过loadview方法加载: 这就是通过代码加载...这需要我们在loadView 方法中,通过编程创建自己的视图层次,并且把把根视图赋值给UIViewController的view属性。...通过加载xib文件来创建UIViewController的view 如果没有找到相关联的xib文件,就会创建一个空白的UIView,然后赋值给UIViewController的view属性 默认不用实现...此时整个视图层次(view hierarchy)已经被放到内存中。 无论是从nib文件加载,还是通过纯代码编写界面,viewDidLoad方法都会执行。

    2K10

    仿淘宝类电商秒杀分页控件(附源码)

    组件导入 组件支持直接将组件文件夹拖入工程和使用Pods管理两种方式导入: ▐ 3.1 直接将组件文件夹拖入工程方式 把 GFPageControler 文件夹拖到工程中,选择 copy ?...后来网上查找,从一篇文章中得到了灵感 视错觉结合UI。 原理: 原理其实很简单:就是弄两个视图,内容和位置一样,只是他们的文字颜色不一样而已!...collectionViewBottom setContentOffset:collectionView.contentOffset]; } } 3、需要一个遮罩,一个UICollectionView在遮罩下面...,一个在遮罩上面; [self addSubview:self.collectionViewBottom]; [self addSubview:self.maskView]; [self.maskView...addSubview:self.collectionViewTop]; 4、在遮罩上面的UICollectionView超出遮罩的部分的内容不显示出来; self.maskView.clipsToBounds

    1.3K20

    Java 类在 Tomcat 中是如何加载的?

    一、类加载 在JVM中并不是一次性把所有的文件都加载到,而是一步一步的,按照需要来加载。 比如JVM启动时,会通过不同的类加载器加载不同的类。...当用户在自己的代码中,需要某些额外的类时,再通过加载机制加载到JVM中,并且存放一段时间,便于频繁使用。 因此使用哪种类加载器、在什么位置加载类都是JVM中重要的知识。...因此,按照这个过程可以想到,如果同样在CLASSPATH指定的目录中和自己工作目录中存放相同的class,会优先加载CLASSPATH目录中的文件。...三、Tomcat类加载 在Tomcat中类的加载稍有不同,如下图: ?...当应用需要到某个类时,则会按照下面的顺序进行类加载: 1、使用bootstrap引导类加载器加载 2、使用system系统类加载器加载 3、使用应用类加载器在WEB-INF/classes中加载 4、使用应用类加载器在

    2.5K20

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    定义通用接口, 为活动控件的事件机制提供实现, 发生指定的动作后, 控件会初始化 Action 方法, 回调对应的事件处理方法; -- 事件处理方法 : UI 控件继承 UIControl 方法, 在..., 有 UIScrollView 的各种功能特性; 2....UIScrollView 属性简介 (1) UIScrollView 简介 UIScrollView 简介 :  -- 显示内容多 : 可滚动控件, 可以使用手指拖动控件中的内容, 在其中可以显示多个屏幕的内容...; (2) UIScrollView 显示区域属性 UIScrollView 显示区域属性 :  -- contentSize : 属性是一个 CGSize 类型值, CGSize 是结构体, 包含 width...resignFirstResponder]; } @end -- 展示效果 : 点击 Done 即可关闭按钮; (4) 自定义键盘附件关闭虚拟键盘 自定义键盘附件 :  -- 作用 : 不是所有的应用都有导航栏, 在没有导航栏的应用中

    6.9K20

    在Flutter中更快地加载您的图像资源

    本文主要介绍在Flutter中更快地加载您的图像资源 我们可以将图像放在我们的资产文件夹中,但如何更快地加载它们?...这是 Flutter 中的一个秘密函数,可以帮助我们做到这一点 — precacheImage() 很多时候(尤其是在 Flutter Web 中),您的本地资源图像需要花费大量时间在屏幕上加载和渲染...我们在 Flutter 中有一个简单而有用的方法,我们可以用它来更快地加载我们的资产图像——precacheImage()!...由于在此需要上下文,因此我们可以在可访问上下文的任何函数中添加 precacheImage()。我们可以将相同的内容放在第一个屏幕的didChangeDependencies()方法中!...现在,下一个是 precacheImage,它在缓存中存储图像需要 14 毫秒。随后的加载只用了 5 毫秒。所以我们可以得出结论,它将加载时间减少到近 50%!

    3.1K20
    领券