在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。...在iOS学习——iOS 整体框架及类继承框架图中列出了iOS中所有类的继承框架图,其中下面这张图就是iOS开发中的界面相关类的继承框架图。 ?...) 视图快照相关的扩展 UIView (UISnapshotting) 下面是UIView.h文件的源码分析,以下内容参考自:ios开发 之 UIView详解。...返回在目标视图view中的像素值 */ 214 - (CGPoint)convertPoint:(CGPoint)point toView:(nullable UIView *)view; 215 /*...:(nullable UIView *)view; 217 /** 将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect */ 218 - (CGRect)convertRect
important; } 很多时候需要禁用移动设备的默认行为,比如长按一个a链接的按钮(href写的是javascript:;)会提示是否打开/取消。...而-webkit-touch-callout 在ios8中是失效的,查资料说是一个bug。...更多参考资料: 1) pointer-events 2) iOS Disable User Select but Allow Input
简述 本文将讲述在iOS开发中如何根据某个UIView来获取所属的UIViewController UIResponder 在iOS中UIResponder类是专门用来响应用户的操作处理各种事件的,包括触摸事件...我们知道UIApplication、UIView、UIViewController这几个类是直接继承自UIResponder,所以这些类都可以响应事件。...当然我们自定义的继承自UIView的View以及自定义的继承自UIViewController的控制器都可以响应事件。...20170512174229676.png 代码 - (UIViewController *)getControllerFromView:(UIView *)view { // 遍历响应者链。
一、添加 Quartz Core 框架 要使用 Quartz Core 框架,你需要将其添加到你的工程中 。...我们这里一个或多个图层的叠加的构成了UIView(或其派生类)对象。看过我关于 UIView 文章的人可能会有疑问:UIView 和图层没啥区别啊?...作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:642363427不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!...例如你的游戏可能会在 mapView图层中再构加入一个图层,用来显示map的一部分内容,比如剩余里程数。...removeFromSuperlayer 方法,可以将图层从他的父图层中删除: [ mapView.layer removeFromSuperlayer]; 要用另外一个图层代替现有的一个子图层,可以用
看了iOS6编程实践第9章后,总结一下UIView和CALayer的异同点: UIView 负责绘制与事件处理,而CALayer只负责绘制。 UIView的绘制也是交给CALayer的。...UIView和CALayer都可以有下一层,都是树状结构。 自定义的UIView重写drawRect,自定义的CALayer重写drawInContext或重写委托者的drawLayer方法。...drawRect方法中系统已经设置好上下文,而且背景颜色等也已经设置好,而drawLayer方法中需要自己push context和pop context以及设置背景颜色。...UIView会在第一次显示或需要重绘时自动调用drawRect,而CALayer不会,需要显示调用setNeedsDisplay。
(4_0); // default is nil @end 继承自UIView,是一种特殊的 UIView,通常在一个app中只会有一个keyUIWindow。...iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了 主要作用是提供一个区域用来显示...对于UIView,侧重于对内容的显示管理;其实是相对于CALayer的高层封装。 3....UIView的显示。...layer给view提供了基础设施,使得绘制内容和呈现更高效动画更容易、更低耗 layer不参与view的事件处理、不参与响应链 *** 更多:iOS面试题合集
.gitignore 使用 我们第一次创建项目和上传项目的时候,是没有.gitignore文件的,我们需要自己配置,这里讲的是Android Studio中怎么使用.gitignore,关于第一次如何上传项目到...从以上提交的结果可以看出,没有添加 Android 工程应有的 .gitignore 文件,我们可以去https://github.com/github/gitignore下载一个,也可以拷贝之前的项目的...由于缓存的原因,当在提交之后添加 .gitignore 文件,或者在 .gitignore 文件中增加或者删除,都是无效的。...其他 新增文件 实际应用中,我们往往随着业务的增加,会不断的增加文件,比如我们天津 .txt 文件,不让 .txt 文件被 track,我们还是按照刚才的步骤来操作即可! ?...说明:Git 代码管理中,我们在没有添加 .gitignore 文件的前提下提交了代码之后再提交 .gitignore 文件,或者是中途添加某一文件类型到 .gitignore 文件中,需要通过以下命令行的方式
iOS动画开发之三——UIView的转场切换 前两篇博客中,我们分别介绍了UIView动画的两种使用方式,分别为,带block的方式:http://my.oschina.net/u/2340880...通过UIView动画的类方法,我们可以十分方便的使View某些属性改变的同时拥有动画效果。这篇博客主要讨论View切换的动画操作。 ...两个方法: + (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions..., 系统提供的转场效果在第一篇博客中已经介绍过。 ...+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration
前言 如果你针对Android Studio中的Gradle插件有不懂。打开老项目的时候,经常由于Gradle的版本号问题造成项目无法编译。...不了解Project目录下build.gradle中的com.android.tools.build:gradle版本与gradle/wrapper/gradle-wrapper.properties...Android Gradle 插件 Android Studio 是采用Gradle 进行代码的打包编译以及构建项目的。 但是Gradle是一个开源的自动构建工具,是面向全平台的。...两个版本号一致 Android Gradle 7.0+更新 但是从7.0 开始,Android 将会有很大的改变。...但我们要忽略该警告,可以通过在proguard-rules.pro 文件中,配置 -dontwarn java.lang.instrument.ClassFileTransformer 来告诉Gradle
前言: 最近在做一个Android相关的小项目,因为之前这方面的项目做的比较的少。今天在使用虚拟机调试的时候经常出现一些莫名其妙的问题,经过自己多次的尝试和搜索终于解决了这些问题。...问题: 每次run(运行)项目在android Emulator一直显示黑屏问题,如下如所示: ? 可能是没有检测到匹配的虚拟设备(unknown devices): ?...解决方案: 重新创建一个新的虚拟设备(Create virtural devices),下载,安装:点击Android Virtual Device Manager(虚拟设备管理)按钮>Create...最后选择刚安装的虚拟设备运行android项目: ? 黑屏问题成功解决,项目界面正常展示: ? ?
转载请以链接形式标明出处: http://blog.csdn.net/lxk_1993/article/details/51579816 本文出自:【lxk_1993的博客】; 1.Session...Error while Installing APK 这个启动失败的问题 我解决的方法是 因为之前解决 java.lang.UnsatisfiedLinkError 错误的时候 在app文件夹下的build.gradle...里面的android的defaultConfig俩面添加了这 ndk{ abiFilters "armeabi" } 所以只要把这句先注释掉就好了。...2.build.gradle里面报下面这个警告,对于有强迫症的为怎么会不把他消灭掉。..., 路径是Android Studio安装目录下的gradle/gradle--2.10(看自己装的修改) 有问题留言, 有新问题再更新。
Android Studio 中的 Design Tools Suite 提供了一整套开发工具包,使得开发者们能高效地进行 UI 设计、原型设计、构建和调试代码。...在 Android Studio 4.1 的迭代中,我们将重心侧重于听取并处理来自用户的反馈,并以此作为依据对现有工具进行改善,最终我们不仅重新设计了现有的一些交互方式,还新增了一些遗漏的功能。...在 Android Studio 4.1 中,我们希望能够在 IDE 中很好地支持这些 helper 的功能,从而达到更好的交互体验。...通过新的属性面板选项操作 helper 设计时 (Design-time) 的属性开关 Android Studio 提供了各种 工具属性,它们都是 android:tools 命名空间下的 XML 属性...我们之前收到了很多关于 Material.io 中的 Material 图标同 Vector Asset wizard 中的图标不一致的抱怨,引起不一致的主要原因是 Android Studio 的发布节奏和
本文是 Android Studio 4.1 中 Profiler 有哪些新增特性 的第二部分。之前的文章侧重于介绍 Android Studio 中 System Trace 的新增功能。...在 Android Studio 4.1 中,Memory Profiler (内存分析器) 可以记录本地内存分配的调用栈。...您只需要在 Android Studio 中点击 profile 按钮,然后打开内存分析器,里面会显示更加详细的内存追踪信息。 ?...本地内存记录在 Android Studio 中加载时的初始状态 有些游戏或者应用所依赖的库会在 new 关键字之外调用 malloc 来申请内存。...另一个本地内存追踪的常见用法是理解应用启动时内存的占用情况。在 Android Studio 4.1 中,我们还增加了在应用启动时采集本地内存使用记录的功能。
需要注意的是bounds属性中的origin部分描述的是视图内部坐标系中原点的位置,它影响着里面子视图的位置。...iOS和macOS两个系统的参考坐标系不一致,对于iOS来说原点默认在视图的左上角位置,而对于macOS来说原点默认是在视图的左下角位置。...UIView和CALayer的定位映射关系 UIView是对视图的抽象类,它主要用来负责数据的存储和操作逻辑的实现。而CALayer则是对视图在屏幕上的渲染和显示信息的抽象类。...因此上述视图中的几个属性的内部实现其实是委托给CALayer中的对应属性来实现的,其对应关系表如下: UIView CALayer frame frame center position bounds...锚点-图片来源于核心动画编程指南 仿射变换 所谓仿射变换就是对一个坐标空间的所有点进行一次线性变换并接上一个平移处理。iOS系统中的视图的属性transform就是用来实现对视图进行仿射变换处理的。
在 Android Studio 4.0 中,我们已经对 CPU Profiler 的 UI 做了大量调整来提供更加直观的工作流记录,而在 Android Studio 4.1 中,我们基于开发者们的反馈对此功能进行了持续改进...我们将会在本文重点介绍 Android Studio 中 System Trace 的新增功能,System Trace 也就是 "系统跟踪" 的意思,用来记录短时间内的设备活动,它会生成一个 .trace...Android Studio 4.1 Beta 1 中的 System Trace 界面 您可以通过简单拖拽将某一区域或者区域内的某个元素进行向上或向下移动来重新组织列表。...框选、拖放与缩放 分析面板 说到分析,我们想着重聊一聊 Android Studio 4.0 中引入的新 Analysis Panel ,它位于 Profiler 窗口的右边一列。...作为补充,我们在 Android Studio 4.1 Canary 10 中添加了 Summary 选项卡,用于展示线程状态分布、跟踪事件统计等信息。
自 Android Studio 4.0 版本开始,我们发布了稳定版本的 Motion Editor,许多开发者已经在使用它创建动画效果。 ?...Motion Editor 中运行的动画 Motion Editor 是 Android Studio Layout Editor (布局编辑器) 的一个扩展,当您在一个包含 MotionLayout...您可以使用已在布局编辑器中所熟知的交互方式来编辑布局和 Motion Scene 文件,并可以直接在 Android Studio 预览界面中对动画效果进行预览。...我们希望这些功能能够让编译器更容易解析复杂的过渡效果,并简化创建体验。 ? Motion Editor 已在 Android Studio 4.0 中推出,欢迎大家使用并给予我们反馈。...Android Studio 团队也会不断地收集反馈以改善其使用体验。有任何想法或遇到任何问题,欢迎 提交反馈。
iOS开发中,创建View常见的两种方式一个是纯代码,一个是借助于XIB;创建ViewController常见的也有两种方式一个是纯代码,一个是借助于StoryBoard。...awakeFromNib] -[ViewController loadView] -[ViewController viewDidLoad] -[ViewController viewDidAppear:] 如果纯代码创建UIView...,调用方式为YFView *yfView = [[YFView alloc]init];那么它的生命周期为: -[YFView initWithFrame:] -[YFView init] -[YFView...layoutSubviews] 如果纯代码创建UIView,调用方式为YFView *yfView = [[YFView alloc]initWithFrame:[UIScreen mainScreen...].bounds];那么它的生命周期为: -[YFView initWithFrame:] -[YFView layoutSubviews] 如果通过XIB创建UIView,调用方式为NSArray *
IOS笔记CALayer的position和anchorPoint CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position;...用来设置CALayer在父层中的位置 以父层的左上角为原点(0,0) @property CGPoint anchorPoint; 称为”定位点” ,“锚点” 决定着CALayer身上的哪个点会在...poistion属性所指的位置 以自己的左上角为原点(0,0) 它的x,y取值范围都是0~1默认值为(0.5,0.5) 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
一直没有很好的理解这两个的区别,今天Google了一下,有了比较清楚的认识。...By default animation and rotation will be based on the center of the UIView....property. bounds - this property is not a positioning property, but defines the drawable area of the UIView...mainScreen] bounds] on startup to determine the visible area for the application and setup their initial UIView...---- Previous Objective-C 私有方法 Next NSLog中使用的格式符
android.ndk { moduleName = "JniLib"//so库的名字 ldLibs.addAll(['android', 'log'])...} 新版的dsl像上面添加(现在基本都是新版的) 旧版的 ldLibs “log” 然后将下面的代码弄成log.h方便调用 #ifndef _LOG_H_ #define _LOG_H_ #...include android/log.h> #define LOG_ENABLE #define LOG_TAG "JBIG_KIT"//这是tag的名字 #ifdef LOG_ENABLE...__android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__) #define LOGI(...)...#endif #endif 最后在c或c++文件中#include “log.h”就可以使用了