自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

长沙火山

立志做一名优秀的软件工程师,在技术上追求一专多能,在思想上追求与时具进。

  • 博客(531)
  • 资源 (52)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS Secure Enclave

Secure Enclave 是一个绝对的安全环境,所以存放的当然也是最高机密的数据。那什么数据属于最高机密的数据呢?一般是用户的生物特征信息,比如指纹信息 TouchID、面部信息 FaceID 等。

2021-12-22 17:19:16 5552

原创 常用的加密算法

一、对称加密算法对称加密算法就是传统的用一个密码进行加密和解密。常用的对称加密算法算法密钥长度工作模式填充模式DES56/64ECB/CBC/PCBC/CTR/…NoPadding/PKCS5Padding/…AES128/192/256ECB/CBC/PCBC/CTR/…NoPadding/PKCS5Padding/PKCS7Padding/…IDEA128ECBPKCS5Padding/PKCS7Padding/…密钥长度直接决定加密强度

2021-12-01 11:02:33 7637

原创 国密算法介绍

一、前言加密是通过“加密算法”将明文加密成密文,可以通过“密钥”和“解密算法”将密文还原成明文。密码学中应用最为广泛的三类算法:对称算法(分组密码算法):AES/DES/SM4非对称算法(公钥密码算法):RSA/SM2摘要算法(杂凑算法):MD5/SHA-I/SM3二、国密算法的意义随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强我国行业信息

2021-12-01 11:01:34 14722

原创 鸿蒙网络请求(下):工具类封装和使用

通过上一篇鸿蒙网络请求的教程,了解了网络请求的基本用法,这一篇文章主要是对上一篇鸿蒙网络请求代码的进一步封装,把网络请求封装成一个工具类。1. 网络请求工具类 RequestUtilpackage com.example.hmrequest.util;import ohos.hiviewdfx.HiLog;import ohos.hiviewdfx.HiLogLabel;import ohos.utils.zson.ZSONObject;import java.io.*;import ja

2021-08-05 15:50:29 2149

原创 鸿蒙网络请求(上):网络请求的使用

最近在学习鸿蒙开发,在鸿蒙网络请求这块遇到了困难。鸿蒙官网虽然提供了网络请求的API和代码事例,但是描述的过于简单,基本上就是贴代码,所以对于一个初学者来说,仍然看的是一头雾水。Github上也有很多第三方封装的鸿蒙网络请求框架,但是既然是学习就要从最基础的开始,而且那些网络请求框架大致看了下,感觉比较复杂,不太好下手。小编也是花了大概一周的时间,自己慢慢摸索,才入门了鸿蒙的网络请求。下面将小编的一些学习成果分享给大家,帮助大家少走弯路。一、需要添加网络请求权限在进行鸿蒙网络请求开发时,先要进行网络请求

2021-08-03 17:37:50 5851 1

原创 视频剪辑 图文教程

一米剪辑图文教程一、提取视频功能说明:提取视频是根据抖音视频链接地址提取无水印视频,能无痕提取抖音视频,并保存到自己的相册。图文教程:1、打开抖音app,找到自己想要下载的视频。点击分享按钮,找到 “复制链接” 按钮,然后点击按钮复制抖音链接。2、 点击 “提取视频” ,然后在文本框中输入刚刚在抖音复制的抖音链接,再点击 “提取视频” 按钮。3、等待视频解析完之后,直接点击 “导出到相册”,无水印视频就下载到相册了。...

2021-07-19 11:29:03 14248

原创 Android JNI开发一: JNI基础知识

JNI基础知识Android系统底层的框架大多采用的是C或者C++语言实现的,但是Android上层的框架是采用Java实现的,所以我们平常进行Android也是采用Java语言开发。虽然Android底层采用C或者C++实现,但是我们在进行Android开发的时候,却不能直接调用C或者C++,而是需要采用JNI来调用C或者C++,下面小编就为大家介绍什么是JNI?以及怎么使用JNI来实现调用C或者C++语言。一、JNI 介绍1.1 简介JNI 即 Java Native Interface,通俗的

2021-07-16 10:32:22 2034

原创 Android JNI开发四: 鸿蒙JNI开发​​​​​​​

一、JNI1.1 创建工程用 DevEco Studio 创建一个新的工程,我的 DevEco Studio 版本为2.1。创建工程第一步的时候,需要选择模版,请选择 Native C++ 这个模版。这个模版为我们提供了JNI开发的环境,我们在这个模版里可以更容易的使用JNI 去调用C语言代码。(1) 创建工程第一步:选择 Native C++ 模版,如下图所示:(2) 创建工程第二步:填写项目名称、项目存放目录,如下图所示:建议填写project name和小编的一样,因为后面的一些配置和包

2021-07-14 11:48:22 1959

原创 Android JNI开发三: SO库的使用

本篇主要介绍如何在普通的安卓工程中使用编译好的SO库文件。首先,新建一个普通的安卓项目工程,我的工程名叫SOTest。项目工程建好后,就将SO库引入到工程中。2.1 将SO库引入工程中在不同的CPU架构下,会被编译成不同的SO库,所以我们需要将整个的lib文件拷贝至我们的项目工程中。SO库需要拷贝到app目录下,路径一定要正确,否则有可能出现因为路径不对而加载不到SO库。2.2 配置SO库的路径在build.gradle文件中添加so库的路径配置和依赖配置,如下图所示:配置代码:

2021-07-09 16:58:24 5610 5

原创 Android JNI开发二: 如何生成SO库

1.tail假定日志文件为catalina.logtail -f catalina.log 该命令用来的查看动态的日志信息tail -fn 200 catalina.log 查看最后200行日志,且动态显示tail -f catalina.log | grep '过滤字符串' 显示存在需要过滤的字符串的行的动态的日志信息2.grepgrep '过滤字符串' catalina.log 从日志文件中过滤出字符串grep -r '过滤字符串' ./...

2021-07-09 16:50:45 3308 2

原创 SwiftUI 12.Stepper介绍和使用

Stepper {HStack {Text("商品数量:\(Stepper {HStack {Image(systemName : "cart.fill") Text("商品数量: \( quantity) ") } } onIncrement : {")通过和Stepper("剩余时间: \( time) 秒") {time + = 10 // 点击加号时增加 10 秒 } onDecrement : {

2025-04-28 11:30:48 270

原创 SwiftUI 11.Slidder介绍和使用

核心功能:通过滑动选择数值,支持连续或离散范围。关键修饰符tint()step()。适用场景:音量控制、亮度调节、参数配置等需要连续输入的交互。通过Slider,你可以快速实现直观的数值选择功能,并灵活定制样式以适应不同平台和设计需求。

2025-04-28 11:30:07 408

原创 SwiftUI 10.Toggle介绍和使用

核心功能:在布尔状态间切换,支持高度自定义样式。关键修饰符tint()onChange()。适用场景:设置选项、功能开关、动态界面控制等。通过Toggle,你可以快速构建交互式开关控件,并根据平台特性灵活调整样式,提升用户体验。

2025-04-28 11:29:23 327

原创 SwiftUI 9.ForEach介绍和使用

核心作用:根据集合数据动态生成视图。唯一标识:必须确保每个元素有唯一的id。灵活组合:可与任何布局容器(如ListHStack)结合使用。性能注意:在超长列表中,优先使用List或LazyVStack优化性能。通过ForEach,你可以高效处理动态数据渲染,结合 SwiftUI 的声明式语法,快速构建复杂的交互界面。

2025-04-28 11:28:13 961

原创 SwiftUI 8.List介绍和使用

SwiftUI 的 组件用于展示可滚动的内容集合,支持静态或动态数据、交互操作(如点击、滑动删除)、分组、自定义样式等。以下是其详细介绍及使用方法:直接声明固定内容:2. 动态列表结合 动态生成列表项:要求数据元素唯一(通过 或遵循 协议)。二、混合内容静态和动态内容组合:三、分组与 Section使用 对列表内容分组:四、交互与样式定制1. 点击事件通过 或结合 :2. 滑动操作(iOS)添加滑动删除或自定义操作:3. 自定义样式隐藏分隔线(iOS 1

2025-04-28 11:27:32 861

原创 SwiftUI 7.Picker介绍和使用

通过ZStack0.85 : 1)// 使用示例PlaceholderTextEditor(text: $noteContent, placeholder: "输入内容...")

2025-04-28 11:26:49 862

原创 SwiftUI 6.TextEditor介绍和使用

通过ZStack0.85 : 1)// 使用示例PlaceholderTextEditor(text: $noteContent, placeholder: "输入内容...")

2025-04-28 11:26:07 422

原创 SwiftUI 5.SecuredField介绍和使用

padding()

2025-04-28 11:24:55 254

原创 SwiftUI 4.TexField介绍和使用

TextField("自定义样式", text: $text).padding()

2025-04-28 11:23:57 161

原创 20.ArkUI Progress的介绍和使用

支持线性进度条和环形进度条两种样式可自定义颜色、宽度、背景等样式属性提供确定进度和不确定进度两种模式支持动态更新进度值.height(10) // 线性进度条高度.color('#FF0000') // 进度条颜色.backgroundColor('#EEEEEE') // 背景色.borderRadius(5) // 圆角。

2025-04-27 11:01:22 382

原创 19.ArkUI AudioPlayer的介绍和使用

AudioPlayer 是 ArkUI 中用于音频播放的核心组件,支持本地和网络音频资源的播放控制。

2025-04-27 10:59:18 598

原创 18.ArkUI Video的介绍和使用

支持本地和网络视频播放提供播放控制、全屏、音量调节等功能支持自定义控制栏可监听播放状态和进度变化支持视频封面和加载状态显示@Entry@Componentbuild() {Column() {Video({}).controls(false) // 禁用默认控制栏})// 自定义控制栏Column() {// 进度条Row() {Slider({min: 0,})})// 控制按钮'暂停' : '播放')})Button('静音')})

2025-04-25 17:20:07 351

原创 17.ArkUI Slider的介绍和使用

Entry@Componentbuild() {Column() {Text('屏幕亮度调节')Row() {.width(30)Slider({min: 0,max: 100,step: 1,})})})}).width(30)Text(`${this@Entry@ComponentColumn() {Text('屏幕亮度调节') . fontSize(20) . fontWeight(FontWeight . Bold) . margin({%`)

2025-04-25 17:19:19 362

原创 16.ArkUI Toggle的介绍和使用

提供开关样式的二元选择支持多种样式(勾选框、开关按钮等)可自定义选中和未选中状态支持状态变化事件监听.selectedColor('#FF0000') // 选中状态颜色.switchPointColor('#FFFFFF') // 开关按钮颜色.width(60)@BuilderText(isOn?build() {

2025-04-25 17:18:24 187

原创 15.ArkUI Checkbox的介绍和使用

Checkbox().size({ width: 30, height: 30 }) // 设置尺寸.shape(CheckBoxShape.Circle) // 圆形样式.selectedIcon($r('app.media.custom_check')) // 自定义选中图标.unselectedIcon($r('app.media.custom_uncheck')) // 自定义未选中图标。

2025-04-25 17:17:36 408

原创 14.ArkUI Radio的介绍和使用

Entry@Component{ value: 'red', label: '红色' },{ value: 'green', label: '绿色' },{ value: 'blue', label: '蓝色' }build() {Column() {Text('选择你喜欢的颜色:')Row() {})size: 20,})})Divider()Text('当前选择: ' + this.selectedColor)

2025-04-25 17:14:18 202

原创 13.ArkUI Navigation的介绍和使用

Entry@Componentbuild() {Column() {Text('页面内容').title('自定义标题').subTitle('副标题').toolBar({items: [// 分享操作},})

2025-04-25 17:13:22 306

原创 12.ArkUI Scroll的介绍和使用

Scroll 是 ArkUI 中的滚动容器组件,当子组件内容超过容器大小时,可以提供滚动查看功能。Scroll 支持垂直和水平滚动,是构建长列表、可滚动内容区域的核心组件。

2025-04-25 17:12:27 394

原创 11.ArkUI Tabs的介绍和使用

支持顶部/底部标签栏布局提供多种标签样式和排列方式支持滑动切换内容页可自定义标签指示器支持嵌套其他组件@Entry@Componentprivate tabs = ['推荐', '热门', '最新']build() {Column() {// 自定义标签栏Row() {Column() {Text(tab)Divider().width(20)})})// 内容区}).barWidth(0) // 隐藏默认标签栏})@Builder。

2025-04-25 17:11:33 315

原创 10.ArkUI Grid的介绍和使用

支持固定列数和自适应布局提供灵活的间距和排列控制支持滚动显示大量项目可以实现复杂的网格布局效果。

2025-04-25 17:10:03 507

原创 9.ArkUI List的介绍和使用

支持垂直/水平滚动高性能渲染(仅渲染可视区域内的项)支持多种布局方式内置多种滑动操作和交互效果。

2025-04-25 17:09:21 394

原创 8.ArkUI Stack的介绍和使用

Stack 是 ArkUI 中的层叠布局容器组件,它允许子组件按照添加顺序在 Z 轴方向(垂直于屏幕方向)上堆叠显示。Stack 类似于其他UI框架中的 FrameLayout 或 RelativeLayout,适用于需要重叠显示的UI场景。

2025-04-25 17:08:18 314

原创 7. ArkUI Flex的介绍和使用

Flex 是 ArkUI 中的弹性布局容器组件,它结合了 Column 和 Row 的特性,可以通过 direction 属性自由切换主轴方向,实现更灵活的布局。Flex 基于 CSS Flexbox 模型,提供了强大的布局能力。

2025-04-25 17:07:25 410

原创 7.ArkUI Flex的介绍和使用

Flex 是 ArkUI 中的弹性布局容器组件,它结合了 Column 和 Row 的特性,可以通过 direction 属性自由切换主轴方向,实现更灵活的布局。Flex 基于 CSS Flexbox 模型,提供了强大的布局能力。

2025-04-25 08:31:19 397

原创 6.ArkUI Row的介绍和使用

Row 是 ArkUI 中的基础布局容器组件,用于水平(横向)排列子组件。它与 Column 组件相对应,是构建用户界面最常用的布局方式之一,类似于其他UI框架中的水平线性布局。

2025-04-25 08:30:19 328

原创 5.ArkUI Column的介绍和使用

TextInput 是 ArkUI 中用于文本输入的核心组件,支持单行、多行输入及多种输入格式控制。

2025-04-25 08:28:42 381

原创 4.ArkUI TextInput的介绍和使用

TextInput 是 ArkUI 中用于文本输入的核心组件,支持单行、多行输入及多种输入格式控制。

2025-04-24 13:18:43 406

原创 3.ArkUI Image的介绍和使用

支持本地图片和网络图片提供多种图片缩放和裁剪模式支持图片加载状态处理可以实现图片动画效果。

2025-04-24 13:17:45 489

原创 2.ArkUI Video的介绍和使用

支持多种按钮样式(胶囊、圆形、文本等)提供丰富的交互状态(按下、禁用、聚焦等)可自定义图标和文本组合支持点击、长按等多种手势事件。

2025-04-24 13:16:43 266

原创 1.ArkUI Text的介绍和使用

支持普通文本、富文本和国际化文本提供丰富的文本样式控制支持文本溢出处理可以实现文本点击事件。

2025-04-24 13:15:41 644

环信3.0UI集成文件

环信3.0集成需要添加的UI文件,另外自行导入环信的SDK

2015-12-13

iOS 抽奖转盘

用iOS做的一个抽奖转盘的demo,可以用于抽奖。

2015-11-20

iOS Notification正向传值

iOS传值,用通知Notifaction正向传值。

2015-07-17

iOS下载图片显示进度

iOS下载图片,并且显示下载的实时进度,下载完成之后显示图片。

2015-07-28

iOS支付宝SDK

iOS支付宝SDK,包含开发文档和演示的DEMO

2015-10-10

Segment带滑动条效果

Segment带滑动条效果

2015-08-11

block反向传值

iOS传值,将B界面的值传到A界面

2015-07-20

环信3.0需添加的文件

环信SDK3.0集成需要添加的一些文件,全部都整合在一起了,把不需要的代码也注释好了。下载后,拖入你的工程可以直接用。

2015-12-11

用plist保存账号密码

用plist保存账号密码

2016-03-28

环信3.0单聊集成chat文件

环信3.0单聊集成chat文件,已经将无关代码注释掉,可直接使用。

2015-12-13

自定义PickerView

自定义一个pickerView,解决如下问题: 1、添加“确定”和“取消”按钮; 2、增加向上弹出和向下消失动画; 3、选中某行后,触发一个事件;

2016-02-29

Swift UIAlterViewController

Swift UIAlterViewController

2016-04-14

环信单聊集成chat文件

环信单聊集成chat文件,把不需要的代码已经注释好,可直接使用。

2015-12-13

iOS 搜索框

UISearchController 搜索框,适用于iOS8.0以后的版本。

2016-03-30

iOS 广告轮播

基本的需求点: 1. 支持循环滚动; 2. 支持加定时器,自动滚动; 3. 支持自定义是否要显示标题; 4. 支持自定义pageControl的位置(左、中、右三种方式); 5. 支持自定义标题的位置(左、中、右三种方式); 6. 支付广告轮播图片的点击,可以点击跳转到你所指定的界面; 7.只有一张图片时,自动隐藏pageControl;

2015-09-22

iOS Notification反向传值

iOS传值,用Notifaction反向传值,将B界面的值传到A界面。

2015-07-17

iOS 抽奖转盘S

绘制直线、三角形、圆弧、文字、图片 等。

2015-11-27

iOS 网络类型

用于判断设备当前的网络类型,wifi、3G、4G等。

2015-10-19

单例反向传值

iOS传值,iOS单例反向传值,将B界面的值传到A界面。

2015-07-20

自定义DatePicker

封装了一个日期选择器,解决两个问题: 1、点击textField,键盘弹出和日期选择器弹出的逻辑处理; 2、同一个界面需要多次用到日期选择器时,判断点击的textField;

2016-01-18

实现上图标下文字,左图标右文字,右文字左图标设置的按钮

在项目开发中,经常需要用到按钮,系统默认的按钮是图标在左边,标题在右边。但往往实际情况是多变的,有时候图标在右边、有时候图标在上面,这个时候系统的按钮往往无法满足需求,所以我们需要自定义按钮来满足需求的开发。下面提供两种方法来实现按钮图标和文字自定按钮。

2022-11-29

iOS列表自动刷新(结合websocket实现,简单实用)

要实现列表做到服务器有数据更新时去主动请求接口,没有数据更新时则不请求接口,关键是要知道服务器什么时候数据更新了,需要服务器主动告知客户端某个列表的接口有数据更新了,当用户切换到此列表时,需要客户端主动去请求接口,获取最新的数据。要实现这一功能,采用websocket是最合适的。websocket能保持服务器和客户端的通信,当服务器有数据更新了,通过websocket告知用户需要刷新列表了。

2022-11-23

MJRefresh无感刷新

MJRefresh无感刷新 项目开发中用了MJRefres 刷新控件,每次上拉的时候都有个菊花转,需要下拉一下才能看到下一页的数据。产品提出需求,希望列表往下拉能直接出现下一页的数据,不需要出现加载的动画和等待时间。于是着手看了一下MJRefresh的源码,发现其提供了无感刷新(自动刷新)的方法。

2022-07-11

MJRefresh自定义动画

MJRefresh自定义动画 项目开发中用了MJRefres 刷新控件,但是MJRefresh默认的加载样式感觉比较丑,产品觉得需要换个样式,弄的简洁一点。于是着手看了一下MJRefresh的源码,发现其提供了修改样式的方法。

2022-07-11

鸿蒙网络请求Demo.zip

鸿蒙网络请求

2021-08-04

iOS逆向非群主@所有人

微信中只有群主才有@所有人的权限,下面用iOS逆向实现一下非群主@所有人的功能

2017-05-17

substrate.h

用Theos 编写代码的时候,发现’MSHookIvar’这个编译不通过,找了一圈不知道是什么原因,后面发现是少了一个substrate.h 文件。下载这个文件,然后复制到你工程目录下面。

2017-05-23

libstdc.zip

Xcode缺少libstdc++的解决方案

2021-05-07

ThirdpartyLogin

第三方登录-QQ登录

2016-11-02

ThirdpartyLogin(QQ微信登录)

微信登录,QQ登录

2016-11-02

iOS Tabbar上添加按钮

iOS tabbar中间添加按钮

2017-03-07

ThirdpartyLogin(QQ微信新浪微博登录)

第三方登录(QQ微信新浪微博登录)

2016-11-02

环信SDK3.2 Chat 文件

环信SDK3.2 Chat 文件

2016-10-31

ios UICollectionView

ios UICollectionView的使用

2016-08-16

ViewPagerTab

安卓tabbar,用viewpager的方式实现tabbar的切换。

2017-03-30

DragBigger

类似QQ空间下拉图片变大的效果

2016-11-03

SourceTree

完美破解版,找了很久才找到,亲测可用。 完美破解版,找了很久才找到,亲测可用。 完美破解版,找了很久才找到,亲测可用。

2017-09-09

iOS 图片轮播

iOS图片轮播、点击事件,显示标题

2016-10-26

ViewPagerFragmentTab

主要介绍ViewPager+Fragment的方式实现Tab的效果,这种方式点击tab上的按钮可以切换界面,左右滑动也可以切换界面。

2017-03-31

FragmentTab

主要介绍用Fragment的方式实现Tab的效果。

2017-03-31

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除