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

在屏幕外设置自定义UIView动画使其子视图不响应

,可以通过以下步骤实现:

  1. 创建一个自定义的UIView子类,命名为CustomAnimationView。
  2. 在CustomAnimationView类中,重写hitTest(_:with:)方法。该方法用于确定触摸事件的响应视图。
  3. 在hitTest(_:with:)方法中,判断当前视图是否处于屏幕外。可以通过判断视图的frame是否超出屏幕边界来判断。
  4. 如果视图处于屏幕外,则返回nil,表示不响应触摸事件。
  5. 如果视图不处于屏幕外,则调用父类的hitTest(_:with:)方法,继续判断子视图的响应情况。

下面是一个示例代码:

代码语言:swift
复制
class CustomAnimationView: UIView {
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        if !self.frame.intersects(UIScreen.main.bounds) {
            return nil
        }
        return super.hitTest(point, with: event)
    }
}

使用这个CustomAnimationView类来创建视图,并在屏幕外设置动画,可以实现使子视图不响应触摸事件的效果。

这种方法适用于需要在屏幕外设置动画的场景,例如在屏幕边缘滑动时,隐藏一部分视图并进行动画效果。在这种情况下,可以使用CustomAnimationView来包裹需要隐藏的子视图,并设置动画效果,同时保持子视图不响应触摸事件。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【IOS开发基础系列】UIView专题

- (BOOL)isDescendantOfView:(UIView *)view 参数 view     一个视图用来测试视图视图层次中的关系 返回值     如果接收者是视图视图就返回YES...消息或者视图从接收者视图层次中移除因为它要被添加到其他视图了 3 UIView动画 3.1 概述         UIView视图动画功能,可以使更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验...UIView可以产生动画效果的变化包括:     • 位置变化:屏幕上移动视图。     • 大小变化:改变视图框架(frame)和边界。     • 拉伸变化:改变视图内容的延展区域。     ...commitAnimations     结束一个动画块并开始当他动画时。...2.容器视图设置转换。 3.容器视图中移除视图。 4.容器视图中添加视图。 5.结束动画块。

44430

IOS开发系列——UIView专题之二:动画篇【整理,部分原创】

2UIView动画 2.1概述 UIView视图动画功能,可以使更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。...UIView可以产生动画效果的变化包括: •位置变化:屏幕上移动视图。 •大小变化:改变视图框架(frame)和边界。 •拉伸变化:改变视图内容的延展区域。...commitAnimations 结束一个动画块并开始当他动画时。...+ (Class)layerClass 返回值 一个用来创建视图layer的类 讨论 重写子类来指定一个自定义类用来显示。当在创建视图layer时候调用。默认的值是CALayer类对象。...2.容器视图设置转换。3.容器视图中移除视图。4.容器视图中添加视图。5.结束动画块。

1.2K10

CALayer 图层概念二、CALayer属性二、方法

概念 CA -> Core Animation (核心动画) 相对更底层. CALayer负责视图中显示内容和动画.所有动画都是作用在CALayer上的....,其实UIView之所以能显示屏幕上,完全是因为它内部的一个图层,创建UIView对象时, UIView内部会自动创建一个图层 (即CALayer对象), 通过UIView的layer属性即可访问这个图层....当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制自己的图层上,绘图完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView得显示.换句话说,UIView...属性 设置图层的尺寸,高度和宽度 @property CGRect bounds; 设置位置 方式1: 用来设置CALayer父层中的位置,position相当于UIView控件的center属性...此处可以和UIView的clipToBounds来比较记忆(clipToBounds为yes会使其上的内容包括视图不能超出边界) 控件截图裁剪的三种方法: 给layer设置圆角半径layer.cornerRadius

1.4K70

iOS 面试策略之系统框架-UIKit

,一直到完成所有视图的布局。...layoutSubviews 是用来自定义视图尺寸调整的。它是系统自动调用的,开发者不能手动调用。我们能做的就是重写该方法,让系统尺寸调整时能按照希望的效果去进行布局。...这个方法主要在屏幕旋转、滑动或触摸界面、视图修改时被触发。...9.代码实现:控制屏幕上的圆形小球,使其水平向右滑动 200 个 point。 关键词: #UIViewPropertyAnimator #交互式动画 这道题很明显是要求实现动画。...UIDragItem 则是像对 NSItemProvider 的进一步封装,除了包含传输数据,还可以自定义一些数据。 实现完该方法后,图片就可以从 dragImageView 里拖动出来了。

1.4K20

iOS动画-CALayer基础知识

它实际上是一个复合引擎,可以将存储图层树体系中的不同独立图层,尽可能快地组合成不同的可视内容呈现于屏幕上;所以做动画只是Core Animation的特性之一; Core Animation直接作用于...视图的的职责就是创建并管理这个图层,以确保视图层级关系中添加或者被移除的时候,它们的关联图层也同样对应在层级关系树当中有相同的操作。...我们访问UIView的frame,bounds等属性又或者设置动画,其实也都是操作其关联图层CALayer的特性。...,默认1.0;1.0:以每个点1个像素绘制图片;2.0:以每个点2个像素绘制图片,Retina屏幕; maskToBounds(BOOL) clipsToBounds(BOOL) 超出边界的内容或者视图是否显示...contentsRect (CGRect) 允许图层边框里显示寄宿图的一个域 contentCenter (CGRect) 定义一个固定的边框和一个图层上可拉伸的区域 三、UIView方法绘制自定义寄宿图

1.8K50

Core Animation Programming

What's UIViewiOS开发中,这个使用频率非常高的控件,同时iOS 所有原生的视图都是由UIView派生而来....视图屏幕上可以是一个矩形块,它能够拦截类似鼠标点击或者触摸手势等用户交互方式. 并且层级关系上可以互相嵌套,一个视图可以管理它所有的视图的位置等.开发项目过程中,这是非常常见的一个使用场景....也能管理视图的位置.甚至CALayer 是有很多方法和属性来做动画处理和变换处理. 但是,CALayer与UIView功能上的区别在哪儿CALayer 不处理用户交互....UIView 与 CALayer 平行的层级关系 每个UIView 都会有一个CALayer 实例图层属性.也就是backing layer.UIView 的职责就是创建并管理这个图层.用来确保当前视图层级关系中添加或者移除的时候...实际上,这背后的关联的图层才是真正用来屏幕上显示和做动画的.UIView 就是对CALayer图层的封装,提供用户交互接口.

1.1K10

iOS开发CoreAnimation解读之二——对CALayer的分析

iOS开发CoreAnimation解读之二——对CALayer的分析 一、UIView中的CALayer属性 1.Layer专门负责view的视图渲染         每一个UIView的对象中都有一个...2.自定义view默认layer属性的类         UIView是很多视图类的父类,根据功能不同,会分出UIImageView,UIScrollerView,UITableView等,CALayer...UIView其中的layer默认是CALyer类,我们也可以通过重写View中的如下方法来使其创建我们需要的layer类: +(Class)layerClass{ } 例如我们自定义一个View类,自定义一个...MyView中重写上述方法: +(Class)layerClass{     return [MyLayer  class]; } MyLayer中进行一些自定义: - (instancetype)...当你设置了Layer的内容后,例如设置了一张图片,内容的尺寸不一定会刚好和layer的尺寸合适,我们可以对其位置的调整,使其达到我们想要的效果,contentsGravity属性决定了内容对齐与填充方式

1K20

UIview

UIView UIView类定义了一个矩形区域屏幕上和管理内容的接口。 Overview 在运行时,一个视图对象处理任何内容的呈现它的面积,还处理任何与内容交互。...因为视图对象是主要的应用程序与用户交互的方式,他们有许多责任。这里有几个: 绘图和动画 视图画内容矩形区域使用UIKit等技术,核心图形和OpenGL ES。...一些可以动画视图声明的属性的新值。 布局和视图管理 一个视图可以包含零个或更多的视图。 每个视图定义了自己的默认的调整行为与它的父视图。 一个视图可以定义子视图的大小和位置。...该方法的实现负责绘制视图的内容到当前图形上下文,这是系统设置的自动调用该方法之前。这将创建一个静态视图的可视化表示的内容可以显示屏幕上。当视图的实际内容发生变化时,你有责任通知系统视图需要重绘。...UIView类做的大部分工作执行实际的动画,但你还必须表明哪个属性改变你想要动画

69110

《Motion Design for iOS》(二十九)

构建更有想象力的警告框视图 现在我们基本重现了标准的iOS 7警告框视图,让我们娱乐一下,构建一些有不同类型动作的自定义的警告框视图。...这里是一个警告框的例子,有着位置和比例的动画,并且其出现和消失的动画都是屏幕的底部。...为了完成这个动画,支撑警告框的UIView和我们之前的例子的设置基本一致,但这一次我们需要更新它的transform属性来进行translation和scale的更改。...就已经被设为动画开始前比例变小并且处于屏幕的底部了,我们可以开始下一步了。...如果我们加快translation动画使其damping和stiffness值和scale动画一样,这就是它看起来的样子。

29720

iOS UIButton 点击无响应的解决办法

前言 日常开发中我们经常和按钮打交道,但是有时候会碰到比较难处理的问题,就是按钮不响应点击事件,这时候我们需要从下面几方面排查 按钮不响应的原因 1、按钮添加到了一个没有开启用户交互的父View上,...解决超出点击区域的问题 这种情况其实很有可能发生,举个我碰到的栗子:聊天区域的高度小于键盘的高度,而输入框是聊天区域的View,键盘弹出后,输入框上移,而且超出了父视图的frame,这个时候点击红框的按钮切换表情键盘动作就不响应...withEvent:返回nil; 若返回YES,则向当前视图的所有视图(subviews)发送hitTest:withEvent:消息,所有视图的遍历顺序是从top到bottom,即从subviews...数组的末尾向前遍历,直到有视图返回非空对象或者全部视图遍历完毕; 若第一次有视图返回非空对象,则hitTest:withEvent:方法返回此对象,处理结束; 如所有视图都返回非,则hitTest...所以我们可以返回nil时进行处理,因为这个时候button是父View的 //返回一个view来响应事件 - (UIView *)hitTest:(CGPoint)point withEvent:

3.3K10

翻译_iOS视图编程指南(View Programming Guide for iOS)之视图和窗口体系

视图和窗口体系结构## 视图和窗口呈现应用的交互界面并且处理交互事件。UIKit和其他系统框架提供大量可以使用而很少改动或无需改动的视图。你也可以与标准视图呈现内容不同的地方设置自定义视图。...视图也可以是其他一些视图的父类,协调那些视图的位置和尺寸。UIView的大部分工作用于管理视图之间的关系,但也可根据自己的需要自定义视图默认的行为。 视图与核心动画层合力处理视图内容修改和动画显示。...UIKit的每个视图都是由一个图层对象(通常都是 CALayer的子类)支持,这些图层管理视图的存储回存以及处理视图相关的动画。大部分的操作都得通过UIView的接口。...在这些图层对象的后面是核心动画渲染对象和用于管理屏幕具体像素的硬件缓冲区。 ? 图1-1例应用视图的体系结构 使用核心动画图层对象对于性能提升有重要的意义。...表面上,视图掩盖全部或部分父视图的内容。如果子视图是完全不透明的,有视图组成的区域将会完全掩盖父视图相应地区域。如果子视图部分透明,屏幕显示之前,父视图视图的内容就会混合在一起。

98840

IOS开发系列——UIView专题之五:常用开发技巧篇

5UIView开发技巧 5.1常用技巧 5.1.1使用半透明View与不透明SubView 半透明背景视图只能用此种方法设置颜色,否则subView也是半透明的。...[UIColorcolorWithRed:0green:0blue:0alpha:0.3]; 5.1.2[super layoutSubviews]要发到layoutSubviews方法末尾位置 自定义子...,直到有视图返回非空对象或者全部视图遍历完毕; •若第一次有视图返回非空对象,则hitTest:withEvent:方法返回此对象,处理结束; •如所有视图都返回非,则hitTest:withEvent...如果一个视图的区域超过父视图的bound区域(父视图的clipsToBounds属性为NO,这样超过父视图bound区域的视图内容也会显示),那么正常情况下对子视图视图之外区域的触摸操作不会被识别...----UIView动画 http://blog.csdn.net/huifeidexin_1/article/details/7597868 UIView动画(过渡效果)的学习笔记 http:/

1K20

iOS提示框,为什么你应该使用 MBProgressHUD?

* * @param view 用来在其视图中查找HUD的视图. * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果....* * @param view 用来在其视图中查找HUD的视图. * @param animated YES,隐藏时使用当前的动画类型显示;NO,直接隐藏不使用动画效果....* @return 视图最顶层的HUD. */ + (MB_INSTANCETYPE)HUDForView:(UIView *)view; /** * 找到并返回视图中所有的HUD....UIView *)view; /** * 显示HUD.你需要确保调用此方法时,主线程未被其他任务阻塞,以便于更新视图.当你已经新的线程中开始(比如,使用NSOperation或者NSURLRequest...* 最好设置自定义视图宽高为 37x37(这是HUD内建指示器的边框值). */ @property (MB_STRONG) UIView *customView; /** * HUD代理对象

2.6K100

浅汇-iOS UI布局

2、实现了UIView内子视图的自动布局; 3、实现了UIScrollView内容高度根据内部视图的内容高度动态设置; 4、实现了一个UITableView有多个不同Cell的时候,所有cell高度自适应...有一个需要注意的地方,cell中所有的视图都需要加载 self.contentView上才行,不可加载self.contentView的视图上,否则按下面的这个方法设置也会出问题。...实现了UIScrollView可滚动高度根据内部视图的内容高度动态设置 /** 设置scrollview内容自适应,第一个参数为作为底部的视图,第二个参数为到sc底部的间距。...:_view3 bottomMargin:10]即可,这个方法 视图初始化的最后设置可以 Model赋值后设置也可以 - (CGFloat)tableView:(UITableView *)tableView...动画中试图的自动布局刷新(SDAutoLayout动画中并不友好) [UIView animateWithDuration:0.8 animations:^{ self.view0.sd_layout

2.1K20

《Motion Design for iOS》(十六)

虽然名字中有动画的单词,不要让它误导你以为它只能做这个;它实际上负责屏幕上显示的所有视图的整体渲染体系结构,可以非常快速地进行透明度计算、图像过滤和视觉效果。...当你屏幕上操作一个UIView的布局或方向的时候,你实际上移动它的CALayer。...图层可以像视图一样被层级安排来屏幕上创建一个完整的用户界面。...你不是非得要用UIView对象来构建你的界面,也可以使用CALayer对象来代替,像视图一样将它们按照父视图-视图的类型放置,只不过替换成父图层-图层。...如果你需要直接更改图层属性的话随时都可以获取一个视图的图层,比如说,设置一个视图的圆角弧度就是通过操作视图的CALayer属性来完成的。

25510

iOS 事件处理机制与图像渲染过程

CALayer iOS当中,所有的视图都从一个叫做UIVIew的基类派生而来,UIView可以处理触摸事件,可以支持基于Core Graphics绘图,可以做仿射变换(例如旋转或者缩放),或者简单的类似于滑动或者渐变的动画...CALayer类概念上和UIView类似,同样也是一些被层级关系树管理的矩形块,同样也可以包含一些内容(像图片,文本或者背景色),管理图层的位置。它们有一些方法和属性用来做动画和变换。...UIView和CALayer是一个平行的层级关系,每一个UIView都有一个CALayer实例的图层属性,也就是所谓的backing layer,视图的职责就是创建并管理这个图层,以确保当视图层级关系中添加或者被移除的时候...比如一个动画是更改alpha值从0到1,那么逻辑树上此属性会被立刻更新为最终属性1,而在动画树上会根据设置动画时间从0逐步变化到1); 渲染树(其属性值就是当前正被显示屏幕上的属性值); CADisplayLink...当一个触摸事件到来时,RunLoop 被唤醒,App 中的代码会执行一些操作,比如创建和调整视图层级、设置 UIView 的 frame、修改 CALayer 的透明度、为视图添加一个动画;这些操作最终都会被

5.5K100

iOS学习——UIView的研究

iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。...,例如是否隐藏、透明度、背景颜色等 视图动画相关的扩展 UIView (UIViewAnimation) ,主要定义视图自定义一个动画所需的一系列方法 视图用block快速定义动画的扩展 UIView...:(NSInteger)index2; 249 250 /** 添加视图(新添加的视图subviews数组的后面, 显示最上面) */ 251 - (void)addSubview:(UIView...:(BOOL)fromCurrentState; 372 373 /** 动画块中为视图设置过渡动画 */ 374 + (void)setAnimationTransition:(UIViewAnimationTransition...的关键帧动画 */ 422 @interface UIView (UIViewKeyframeAnimations) 423 424 /** 创建一个动画块对象,可用于为当前视图设置基于关键帧的动画

2.7K80

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券