前言 最近公司有个需求,做一个今日头条的用户动态的进入和退出的动画效果,并且退场时,可以自己点击退出,也可以手势下滑退出。头条的效果如下: ?...,在pan手势触发的时候,需要先调用[self.navigationController popViewControllerAnimated:YES];,告诉导航控制器,我要执行pop操作 3、手势退出和点击...back退出的处理 我们可以仔细观察一下今日头条的Gif,不难发现他点击返回键退出,以及手势退出时,转场动画时不一样的。...} }]; }else { block(); } } 注意self.isInteracting和self.isComplete这两个Bool控制显示的动画即可.../2016/03/13/iOS-transition-guide/ 6、Demo地址 https://github.com/maple1994/MPPlayerDemo
把子视图控制器的视图添加到父视图控制器并覆盖 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers{ [self addChildViewController...childViewController.view mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(self.view); }]; } 把子视图控制器的视图添加到父视图控制器的指定容器视图...,适当时机跳转 添加子控制器 #pragma mark - 添加子控制器 - (void)addSubControllers { _childViewController = [[InfoViewController...removeFromSuperview)]; [self fitFrameForChildViewController:_childViewController]; //设置默认显示在容器View的内容...[self.contentView addSubview:_childViewController.view]; } 子VC的布局约束 #pragma mark - 子VC的布局约束 - (void
iOS翻页视图控制器UIPageViewController的应用 一、引言 UIPageViewController是iOS中少见的动画视图控制器之一,通过它既可以创建类似UIScrollView...UIPageViewController把从DataSource中获取到的视图数据渲染给View用于当前视图控制器的展示。... 这个数据源方法返回的视图控制器为要显示视图的视图控制器 - (nullable UIViewController *)pageViewController:(UIPageViewController ...NSString * const UIPageViewControllerOptionSpineLocationKey; //这个键需要设置为NSNumber类型 设置每页视图的间距 用于滚动视图风格的... NS_AVAILABLE_IOS(6_0); 五、UIPageViewControllerDelegate中方法解析 //翻页视图控制器将要翻页时执行的方法 - (void)pageViewController
iOS开发中活动视图控制器UIActivityViewController的应用 在iOS开发中,UIActivityViewController常用来弹出分享面板,其实除了用来社会化分享,UIActivityViewController...:@"https://www.baidu.com"]; //活动的图片 UIImage * image = [UIImage imageNamed:@"ios"]; UIActivityViewController...> *excludedActivityTypes; //下面这些方法在iOS8后被弃用 在iOS6-iOS8之前可用 //设置活动行为结束后回调的block /* typedef void (^UIActivityViewControllerCompletionHandler...:@"https://www.baidu.com"]; UIImage * image = [UIImage imageNamed:@"ios"]; CustomActivity * activity...- (void)prepareWithActivityItems:(NSArray *)activityItems; //子类实现 返回一个视图控制器作为处理活动的模态视图 活动处理完成后需要调用activityDidFinish
controller的管理 导航控制器是一个堆栈结构,只是其中管理的对象是controller,通过push与pop进行controller的切换,我们有两种方式可以创建导航控制器: /...:(UIViewController *)rootViewController; 通过以下方法对视图控制器进行管理操作: //设置管理的视图控制器 - (void)setViewControllers:...:(UIViewController *)viewController animated:(BOOL)animated; //弹出一个视图控制器 返回的是pop的controller - (nullable...//iOS7之后,在导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效 @property(nullable, nonatomic, readonly) UIGestureRecognizer...) BOOL hidesBarsWhenKeyboardAppears; //屏幕滑动的时候隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic
I 视图滚动的时候控制导航条标题及公告视图的alpha 应用场景:导航条的标题放到视图中,例如下图 ?...在这里插入图片描述 1.1 视图的创建 setupnavView - (void)setupnavView { navView = [[UIImageView alloc]initWithFrame...}]; } return _noteViw; } 1.2 滚动的时候控制导航条标题和公告视图的...(7.0)); III iOS跑马灯控件的封装(公告栏) 1、应用场景:公告栏和抽奖轮盘边框动画 2、CSDN文章https://blog.csdn.net/z929118967/article/...NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"公告:收款码仅用于在门店消费当面付款使用
前言 iPhone拥有很好的用户交互体验,这源于iOS系统对交互事件的高效处理和高优响应; App开发者处理用户交互非常便捷,这源于iOS系统和UIKit对用户操作做了封装和默认处理; 本文围绕iOS...手势处理的发生时机我们可以通过手势的touchesBegan:withEvent:方法来看,当我们断点在手势的touchesBegan方法时,我们看到堆栈: ?...注意到堆栈中的UIApplication的sendEvent:方法,sendEvent是发生在UIKit寻找目标视图过程之后。...但是当手势识别成功之后,默认会cancel后续touch操作,从目标视图开始的响应链都会收到touchesCancelled方法,而不是正常的touchesEnded方法,堆栈如下: ?...注意到不管是手势处理开始的touchesBegan方法,还是手势识别成功后触发touchesCancelled方法,堆栈中都有一个UIGestureEnvironment类。
概念 UINavigationController 继承于 UIViewController 包含:viewcontrollers、NavigationBar、Toolbar 导航控制器是一个堆栈结构,...(iOS7之后,在导航中右划会进行pop操作,设置这个的enable可以控制设置手势是否失效) @property(nullable, nonatomic, readonly) UIGestureRecognizer...*barHideOnSwipeGestureRecognizer; 10、屏幕滑动的时候是否隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...)animated; 3、管理视图控制器操作 (1)压入新的视图控制器 - (void)pushViewController:(UIViewController *)viewController animated...= YES; [super pushViewController:viewController animated:animated]; } (2)弹出一个视图控制器 返回的是pop的controller
,用户接触他们的手指(只读) @property(nonatomic,readonly,getter=isDecelerating) BOOL decelerating; //26.一个布尔值,决定是否推迟滚动视图触摸手势的处理...- (BOOL)touchesShouldCancelInContentView:(UIView *)view; //30.浮点值 指定可应用于滚动视图的内容的最低比例因子 @property(nonatomic...) CGFloat minimumZoomScale; //31.一个浮点值指定可用于滚动视图的内容的最大规模的因素 @property(nonatomic) CGFloat maximumZoomScale...; //32.一个浮点值 指定目前用于滚动视图的内容的比例因子 @property(nonatomic) CGFloat zoomScale NS_AVAILABLE_IOS(3_0); //33....@property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 (其实就是内容左上角与scrollView左上角的间距值,初始位置
一个滚动视图也可以控制一个视图的缩放和平铺。当用户做捏合手势时,滚动视图调整偏移量和视图的比例。当手势结束的时候,管理视图内容显示的对象,就应该恰当的升级子视图的显示。...假如这样做,会出现一些异常情况,因为2个对象的触摸事件可能被混合,从而错误的处理。 这些都是官方API的解释,重点是理解UIScrollView怎么来控制手势的。...可以由canCancelContentTouches这个方法的运用来解释UIScrollView如何控制手势的。 ...它在这些对象之间保持了松散的配对,视图本身与视图控制器或任何其它的控制器对象,委托不是滚轴视图的直接子类,它比起牢固配对的子类更加的松散。...的cell间距与设置不符问题 http://www.bkjia.com/IOSjc/917782.html IOS中scrollsToTop问题小结 http://blog.csdn.net/enuola
child 参数用于设置按钮的内容,告诉 Flutter 控件应该长成什么样,也就是控制着按钮控件的基本样式。...,用于 1~3 行(leading、title、subtitle)展示文本、图标等视图元素的场景,通常与 ListView 配合使用。...ListView 的组件控制器则是 ScrollControler,我们可以通过它来获取视图的滚动信息,更新视图的滚动位置。...pubspec.lock 文件的作用类似 iOS 的 Podfile.lock 或前端的 package-lock.json 文件,用于记录当前状态下实际安装的各个直接依赖、间接依赖的包的具体来源和版本号...像这样的手势识别发生在多个存在父子关系的视图时,手势竞技场会一并检查父视图和子视图的手势,并且通常最终会确认由子视图来响应事件。
,也是直接采用block的方式实现 视图上手势相关的扩展 UIView (UIViewGestureRecognizers) ,主要提供添加、移除和手势开始前回调3个方法 视图上运动效果相关的扩展 UIView...,比喻第一视图、基线视图、视图大小等等 视图约束适应尺寸相关的扩展 UIView (UIConstraintBasedLayoutFittingSize),主要用于获取持有约束的视图大小及其区域内的视图大小...控制导致某种形式的定向改变UI中,如分段控制文本对齐方式或在游戏中方向键 123 UISemanticContentAttributeForceLeftToRight, //!...布局有效 */ 291 @property (nonatomic) UIEdgeInsets layoutMargins NS_AVAILABLE_IOS(8_0); 292 /** 是否将当前视图的间距和父视图相同...297 /** 视图间距引导 */ 298 @property(readonly,strong) UILayoutGuide *layoutMarginsGuide NS_AVAILABLE_IOS
iOS的系统字体(San Francisco)使用动态类型(Dynamic Type)来自动调整字间距和行间距,使文本在任何尺寸大小下都清晰易读。...视图的所有类型有:控件(比如按钮和滑块)、内容视图(比如集合视图和表格视图),以及临时视图(如警告提示和动作菜单)。 要在应用中管理一组或者一系列的视图,通常需要使用视图控制器。...这里有一个关于视图与视图控制器如何结合并呈现iOS应用的UI的例子,如图。 ? 尽管开发者认为真正起到作用的是视图和视图控制器,但一般用户感知到的iOS应用是不同屏幕内容的集合。...你可以使用一个特征集合让你的视图和视图控制器响应显示环境的变化。 iOS定义了两个尺寸类别(size class),常规的(regular)和压缩的(compact)。...除了用户熟悉的标准手势,iOS还定义了一些系统范围内的操作,例如呼出控制中心(Control Center)或消息中心(Notification Center)。用户可以在任意应用下都使用这些手势。
4.2.10 分栏视图控制器 分栏视图控制器是一个用于管理两个相邻视图控制器显示的全屏视图控制器。 ? API注释 每一个对分视图控制器的子视图负责管理一个窗格的展现。...在iOS 7及之前的版本里,对分视图控制器仅适用于iPad. 默认情况下,对分视图控制器通过当前的尺寸来管理其子视图。...对分视图控制器也支持轻扫手势来执行呼出和隐藏的动作。除非你的app有定义轻扫的手势执行其他功能,否则你应当支持用户轻扫以唤起左侧窗格。...iOS提供了若干表格视图元素(table-view elements)来扩展表格视图的功能。除了特别标明外,这些元素只适用于表格视图。 ?...iOS定义了在平铺型表格和分组型表格中最常用到的四种单元格布局样式。每种单元格样式都有最适合展示的信息类型。 重要 从编程角度来说,这些样式应用于单元格中,用以控制表格里每一列的绘制方式。
NSLog(@"%f",(kDeviceHeight-88-49)/4.0); return CGSizeMake(152.5*NEWX,152.5*NEWX+58); } 每个section中不同的行之间的行间距...关于 item之间的间距,是这样的。...UICollectionView 的宽度 - 可容纳的item的宽度之和 再平分之后的距离就是每个Item之间的间距。 ?...updateInteractiveMovementTargetPosition(targetPosition: CGPoint) 在手势作用期间更新交互移动的目标位置。】...使用UIScrollView,主要技术点在于视图的重用。
深度:有层次感的视觉和合适的手势带来了活力,而且提升了人们的愉悦感和理解深度 无论你是在重新设计一个旧的app还是在创建一个新的app,考虑以下这些方法来处理工作: 首先,透过app的UI看到其核心功能并且确定它们的关联性...服从内容 尽管一个清新的、漂亮的UI和流动的手势被iOS体验所强调,但用户的内容才是它的核心。 这里是一些确保你的设计能够提升功能以及服从用户的内容的方法。 利用全屏的优势。...半透明元素——比如控制中心——提供了环境帮助用户看到有更多的内容是可获得的,并且可以给出一个短暂的信号。...动态类型的San Francisco(一种iOS系统字体)可以自动地调整字母间距和行高,这样文本会易于阅读,在每个尺寸下都很好看。...当用户选择了一个月份,年份视图会放大推进然后显示月份视图。今天的日期依然高亮,年份则在返回按钮上显示,所以用户可以清楚的知道他们在哪个视图,从哪个视图来到这个视图的,以及如何回到原来的视图。
UIView:若视图是控制器的根视图,则其 nextResponder 为控制器对象;否则,其 nextResponder 为父视图; UIViewController:若控制器的视图是 window...适用于同一个View中创建多个UIGestureRecognizer,要调整优先级的情况。 例:单击手势中调用此方法,参数是双击手势,判断双击失败后才会响应单击。...方法 /** 返回YES能保证失效,但返回NO并不能保证生效(单一控制优先级) 适用于不同层级的手势优先级处理 */ /// 返回YES第一个手势失效 @available(iOS 7.0, *) optional...open var canCancelContentTouches: Bool // 在UIScrollView的子类中重写该方法,用于返回是否将事件传递给对应的子视图,默认返回YES,如果返回NO,该事件不会传递给对应的子视图..., in view: UIView) -> Bool // 在UIScrollView的子类中重写该方法,用于返回是否取消已经传递给子视图的事件,默认当子视图是UIControl时返回NO,否则返回YES
UIResponder大体有四类事件:触摸、加速计、远程控制、按压(iOS9.0以后出来的,3DTouch)。 ?...如果这个上层视图还是不能处理事件,则将事件传递给视图所在的视图控制器。 视图控制器会尝试处理事件。如果这个视图控制器不能处理事件,则将事件传递给窗口(window)对象。...,定义了所有手势的基本行为,使用它的子类才能处理具体的手势 UITapGestureRecognizer(点按) UIPinchGestureRecognizer(捏合,用于缩放) UIPanGestureRecognizer...1.创建手势识别实例 2.设置手势识别属性,例如手指数量,方向等 3.将手势识别附加到指定的视图之上 4.编写手势触发监听方法 每一个手势识别器的用法都差不多,比如UITapGestureRecognizer...如果要监听多个轻扫方向,需要添加多个轻扫手势 轻扫手势默认支持向右的扫动方向 因为轻扫手势要求用户比较放松的扫动,因此最好不要将此手势添加到某一个视图上,会局限用户的操作 - (void)addSwipeGesture
,其支持左侧抽屉和右侧抽屉,可以很好的支持导航控制器,并且支持开发者对手势和动画进行自定义。...二、MMDrawerController的使用及相关设置 MMDrawerController的使用十分简单,只需将中心视图控制器和左边栏视图控制器传入初始化方法即可完成MMDrawerController...只有在iOS7之后可用 @property (nonatomic, assign) BOOL showsStatusBarBackgroundView; //设置状态栏视图颜色 只有在iOS7之后可用...MMDrawerSide)drawerSide distance:(CGFloat)distance completion:(void(^)(BOOL finished))completion; //这个方法用于进行视图侧边栏视图出现动画的自定义...MMDrawerController * drawerController, UIGestureRecognizer * gesture))gestureCompletionBlock; //这个方法用于定义自定义的手势操作
fmpro - 电台播放器,支持锁屏歌词,支持基本播放流程,歌词展示,后台锁屏播放和控制以及锁屏后封面+歌词,fmpro_R 。...ICGVideoTrimmer - ICGVideoTrimmer提供视频剪切的视图。左右两个边界选择器还能够自定义。...DraggableYoutubeFloatingVideo - 展示像类似Youtube移动应用的那种浏览视频的效果,当点击某视频时能够从右下方弹出一个界面,并且该界面能够通过手势,再次收缩在右下方并继续播放...ALCameraViewController - ALCameraViewController摄像头视图控制器(含可定制照片选择器,图片简单裁切功能)及演示。...Periscope-VideoViewController.swift - 简洁实用的视频快进,倒带控制视图类库。
领取专属 10元无门槛券
手把手带您无忧上云