移动开发

Swift5.0 -UIView 动画

Swift-UIView动画 UIView动画可以设置的动画属性有: 1、大小变化(frame) 2、拉伸变化(bounds) 3、中心位置(center) 4、旋转(transform) 5、透明度(alpha) 6、背景颜色(backgroundColor) 7、拉伸内容(contentStretch) 其中通过transform也可以实现不同的动画效果,例如:平移、缩放、旋转、翻转 简单动画

如何在 Kotlin 中创建单例类?

Singleton 是一个全局对象,可以从应用程序的任何地方访问。本文展示了在 Kotlin 中创建它的不同方法。 在 Kotlin 中,您可以使用对象声明来实现单例。但是,如果你不知道这个对象关键字,你可能会做这样的事情。 常规单例 class Singleton private constructor() { companion object { @Volatile

为什么block要使用copy而不是strong或者其他属性修饰?

block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈上的,而不是在堆上。 其本身的作用域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。因为栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆区。使用retain也可以,但是

Android-EventBus库的使用

图片来源网络,入侵必删 在维护一些项目的时候,我们可能会遇到使用EventBus做Android事件总线优化。这篇博客分享一下EventBus的知识,希望对看文章的小伙伴有所帮助。 EventBus的引入 implementation("org.greenrobot:eventbus:3.3.1") 我发文的时候,最新的版本是3.3.1。如果看文章过来很久了,你可以去EventB

Android AVDemo(8):视频编码,H.264 和 H.265 都支持丨音视频工程示例

vx 搜索『gjzkeyframe』 关注『关键帧Keyframe』来及时获得最新的音视频技术文章。 塞尚《樱桃和桃子》 iOS/Android 客户端开发同学如果想要开始学习音视频开发,最丝滑的方式是对音视频基础概念知识有一定了解后,再借助 iOS/Android 平台的音视频能力上手去实践音视频的采集 → 编码 → 封装 → 解封装 → 解码 → 渲染过程,并借助音视频工具来分析和

使用TC(TotalControl)遇到的问题,adb已停止工作

    使用TC的小伙伴,在连接手机时,相信都多多少少会遇到以下这个问题。 image.png     点击关闭程序后,可以看见adb 这个进程在被360的MobileLink进程占住 image.png     在任务栏打开任务管理器或使用组合键ctrl+alt+. 进入任务管理器。 image.png     如图点击详细信息,将对应360连接手机的进程

Android-接入腾讯X5内核的WebView

图片来源网络,入侵必删 在维护一些原生+H5的Android项目的时候,我们会发现项目是接入了X5内核的WebView来提高H5的用户体验感。这篇博客我知道的X5内核WebView相关的知识,希望对看文章的小伙伴有所帮助。 X5内核的WebView 项目集成 项目的build.gradle中加入: repositories { google() // 增加这行

iOS 关于创建超过5个 tabBar 的方法!

如果使用系统的tabBar 最多只能显示5个,所以想要展示超过5个 就只能自己想办法弄喽!我用的办法是: 1:先把系统的tabBar 隐藏掉  [self.tabBar setHidden:YES];   ps:在继承了UITabBarController 的tabBar控制器里面!  2:自定义个view添加到自定义的tabBar控制器里面,上面创建你想要的个数的按钮!然后放在tabBar的位置

set/map(ES6)

set与map理解 ES6中新增,set集合和map集合就是一种数据的存储结构(在ES6之前数据存储结构只有array,object),不同的场景使用不同的集合去存储数据 set集合 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。 语法: //创建一个set集合,传参为一个可迭代的对象 const s1 = new Set(iterable); API 名

Spring Boot @Retryable重试策略

在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败。 调用远程服务失败。 争抢锁失败。 这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。 然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。 一、