自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lu_Ca的博客

做自己认为对的事,坚持下去

  • 博客(425)
  • 资源 (17)
  • 收藏
  • 关注

原创 鸿蒙问题之CustomDialog后持久化@state数据崩溃

这个操作(复制一份,持久化复制的内容)真的辣眼睛,但是这样确实不崩溃了,值得一提的是:如果你直接const copy = this.dataArray也是不行的,除非复制出来新的一块内存。然后,点击某个字符串内容弹出customDialog,用户修改,确认后将修改的字符串回传,同时,修改数组的内容,持久化数组。然后,认为是不是因为回调的bind(this),但是不添加bind(this)又会导致回调中的this不是当前组件,访问不到属性。直到后来注意到我的数组用了@state修饰,去掉后果然不崩溃了。

2024-03-06 11:30:57 389

原创 鸿蒙开发之设置横竖屏

我的需求是APP大部分是竖屏显示,在某个页面需要显示横屏。直接上答案。

2024-03-04 14:26:01 343

原创 鸿蒙开发之组件间方法传递(方法回调)

目前使用的方式有两种,一种是父子组件方法传递,一种是系统提供的emitter。

2024-03-01 10:07:29 639

原创 鸿蒙开发之LazyForEach及刷新问题

在开发过程中会遇到list、grid的item过多的情况。例如某些新闻类、某些购物类的页面,如果我们有大量的数据,直接通过ForEach进行全量渲染会直接把手机卡死。这样肯定是不行的,这个时候LazyForEach就该登场了。LazyForEach主要是用来针对列表数据量大、列表组件复杂的场景,减少了页面一次性加载数据的时间消耗,减少了内存峰值。可以显著提升页面的能效比和用户体验。实现原理就是它会从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。

2024-02-20 09:57:54 960

原创 鸿蒙开发之下拉菜单Menu

鸿蒙定义了很好的下拉组件,对比原生iOS或android需要自定义来说确实简单太多了,而且原生相对自定义来说要稳定太多了。上图来自官网案例。一、API使用Menu作为容器组件,内部使用MenuItem作为每一条的选项。其中,通过MenuItem控制具体的选项信息。MenuItem可以传递参数startIcon?: ResourceStr; //起始位置的图标content?: ResourceStr; //内容,左侧标题endIcon?: ResourceStr; //末尾

2024-01-19 14:58:20 580

原创 鸿蒙开发组件之跑马灯Marquee

鸿蒙封装了跑马灯组件Marquee,使用起来确实很简单。需要注意的是想要让跑马灯效果动起来,需要设置。

2024-01-18 16:52:23 453

原创 鸿蒙开发之帧动画ImageAnimator

鸿蒙帧动画需要借助组件ImageAnimator。使用的时候想要让动画动起来需要设置state为AnimationStatus.Running。

2024-01-18 14:20:05 456

原创 鸿蒙开发之blank组件

使用blank可以在row/column/flex在容器主轴方向上填充剩余部分。可以通过设置min最小宽度/高度来控制填充的大小,也可以通过backgroundColor设置背景颜色来改变默认的透明色填充。

2024-01-17 09:35:21 834

原创 鸿蒙开发之组合手势

当我们需要支持多个手势的时候,可以通过GestureGroup来实现,如下实现了同时支持Tap和Pan手势。其中,GestureGroup的mode参数含义如下。

2024-01-15 17:40:58 411

原创 鸿蒙开发之手势Pan

【代码】鸿蒙开发之手势Pan。

2024-01-15 16:44:34 728

原创 鸿蒙开发之Tap手势

首先,组件上如果同时有tap和click两种事件,那么组件会响应click事件。

2024-01-15 14:32:23 522

原创 鸿蒙开发之组件不同状态样式设置stateStyles

需要说明的是设置的属性都是通用属性。不能设置一些特有属性,例如我想不同状态改变字体大小fontSize,这个做不到。还得需要定义@state属性,通过改变定义的属性来改变。开发中会有一种场景,组件(如:按钮)在不同状态下展示的样式不同。例如在normal状态和按下状态显示不同的样式,这个时候就可以通过stateStyles属性来设置组件。

2024-01-11 11:25:16 450

原创 鸿蒙开发之增大点击响应热区responseRegion

系统提供了增大响应热区的API:responseRegion。当然,也可以通过设置百分比的方式设置热区的宽高,如扩大按钮热区一倍的高度。height响应的高度(支持百分比和具体长度)width响应的宽度(支持百分比和具体长度)

2024-01-11 10:39:33 555

原创 鸿蒙开发之组件border属性

【代码】鸿蒙开发之组件border属性。

2024-01-09 10:32:33 613

原创 鸿蒙开发之拖拽事件

拖拽触发时间是长按150ms。如果组件上有长按手势,需要看长按手势设置的触发时间。当长按手势配置时间小于等于150ms时,长按手势优先触发,如果长按手势设置的时间大于150ms,那么拖拽事件优先触发。

2024-01-05 10:33:33 1083

原创 鸿蒙开发之Touch事件拦截stopPropagation()

如上代码 ,我在statck组件添加了touch事件,并且在子组件Text('这是最上边的')也添加了touch事件,并且touch中不调用touch.stopPropagation()。这样我在点击这个Text的时候,子组件与父组件的touch事件都会响应,也就是我可以成功修改this.message.如果打开touch.stopPropagation(),那么我在点击Text的时候,就不会触发父组件Stack的touch事件。另外,官网的这个解释(阻塞事件冒泡)真的让人有点摸不到头脑,汉语真有意思~~

2024-01-04 17:12:07 482

原创 鸿蒙开发之进程相关

【代码】鸿蒙开发之进程相关。

2024-01-02 17:46:16 351

原创 鸿蒙开发之地理位置

所以,如果是高精度的位置信息需要两个权限都申请,如果只是需要模糊定位为了节能只需要第二个权限就够了。获取位置信息需要先在module.json5中申请权限,而权限的申请在API9版本发生了变动如下。

2024-01-02 14:42:31 868

原创 鸿蒙开发之定时器

鸿蒙的定时器分为两种,一种是到时间执行1次,一种是可以重复执行。

2023-12-29 11:23:42 769

原创 鸿蒙开发之Web与原生通信

提示:目前API9、鸿蒙4.0的本地模拟器不支持交互,巨坑。参考。

2023-12-29 10:59:04 1208

原创 鸿蒙问题之本地模拟器无法识别

今天按例打开本地模拟器,发现DevEco Studio不能检测到我的本地模拟器了。重启了DevEco Studio和模拟器多次都无果。然后创建一个新的,就可以成功检测到了。这应该是idea的一个bug。

2023-12-29 09:53:26 1239

原创 鸿蒙开发之获取系统时间

1、获取自Unix纪元以来的纳秒,第一个参数true表示纳秒,false表示毫秒。注意:所有API在预览器不生效,需要在模拟器或真机测试。2、获取自系统启动的毫秒数,不包括深度睡眠的时间。3、获取系统启动的毫秒数,包括深度睡眠的时间。4、获取当前系统的日期。5、获取当前系统的时区。

2023-12-28 14:59:25 1110

原创 鸿蒙开发之崩溃信息收集FaultLogger

前申:果然系统的API没有让我失望,日志完全看不出来崩溃原因所在。

2023-12-28 10:04:52 518

原创 鸿蒙开发之图片下载

在下载的方法里,通过downloadFile拿到request.DownloadTask对象,然后通过on方法进行监听progress的回调,回调中有当前下载大小和整体资源大小,这里可以做一个进度提示。1、首先,downloadFile函数的第一个参数官网是用的globalThis.abilityContext,我直接在page页面模拟的所以直接通过this拿context即可。4、最后,downloadTask的on方法回调监听一定是在downloadFile方法回调内部使用的,官网没说明这点。

2023-12-27 16:30:06 477 2

原创 鸿蒙问题之“code“:2100002,“message“:“Operation failed. Cannot connect to service“

在阅读官方文档connection时,自己测试系统的API,利用模拟器测试,发现报错。

2023-12-27 10:27:42 424

原创 鸿蒙开发之图片选择器

长按图片,给图片添加一个抖动的动画。这里借助了z轴旋转动画实现。系统的图片选择器真的非常友好,这个绝对要赞一下。

2023-12-26 15:56:46 911

原创 鸿蒙问题之Cannot read property registerFont of undefined

找不到registerFont?再看一遍官网,再点进去看一遍代码库,都有啊。意思是Previewer和真机不一样呗,那就看下模拟器,然后模拟器运行报错。这是系统的问题,现在虽然写API9支持,但是还是不支持,等官方修复吧。今天学习自定义字体,按照官网,准备好自定义字体库。一开始,模拟器上运行,怎么改都没效果。然后突然注意到日志中提示。后来,去论坛找问题看到大家居然都报错。

2023-12-22 15:56:57 648 2

原创 鸿蒙开发之系统Toast、Dialog

Toast用来提示一些错误信息,可以设置几秒后消失。Dialog作用就是Alert需要用户进行交互,虽然是系统的Alert,但是,样子吧~不敢恭维,而且还不支持按钮样式自定义。

2023-12-22 14:55:12 574

原创 鸿蒙开发之监听屏幕横竖屏切换

其中mediaQueryResult.matches是boolean类型,表示回调的结果是否和matchMediaSync('(orientation: landscape)') 结果一致。鸿蒙开发的横竖屏切换隶属于mediaquery模块,通过注册监听,回调方法来让我们处理横竖屏切换后的业务逻辑。

2023-12-22 14:18:52 582

原创 鸿蒙开发之压缩/解压缩

本次学习遗留一个问题:压缩/解压缩的路径怎么获取??希望知道的小伙伴能给说一下,私聊评论皆可。

2023-12-20 17:26:27 704 1

原创 鸿蒙开发之数据持久化存储Preferences

用户首选项(Preferences)提供的是key-value键值对的方式处理数据。类似于iOS开发中的NSUserDefault,主要针对的是轻量化数据的存储。如:字体大小、用户的信息等。其中,key为字符串类型,value是string、number、boolean以及其组成的数组类型。

2023-12-19 22:20:22 718

原创 鸿蒙开发之用户隐私权限申请

鸿蒙开发过程中可用于请求的权限一共有两种:normal和system_basic。normal权限normal 权限允许应用访问超出默认规则外的普通系统资源。这些系统资源的开放(包括数据和功能)对用户隐私以及其他应用带来的风险很小。该类型的权限仅向APL等级为normal及以上的应用开放。system_basic权限system_basic权限允许应用访问操作系统基础服务相关的资源。这部分系统基础服务属于系统提供或者预置的基础功能,比如系统设置、身份认证等。

2023-12-17 09:18:12 2033

原创 鸿蒙开发之网络请求

2.2 第二个是请求的配置,可以配置请求是post、get、delete等,还有请求的参数等,2.3 第三个参数是请求结果的回调,回调的data是 http.HttpResponse类型。注意,需要在module.json5文件中配置网络请求权限。2.1 第一个参数是请求的url,还有一种写法,请求结果在第三个参数重回调回来。如果需要中断网络请求可以。过程还是比较好理解的,

2023-12-17 05:57:12 743

原创 鸿蒙开发组件之Web

默认加载的是Index页面,我们需要在EntryAbility.ts的onWindowStageCreate方法中,设置加载咱们的Web的page。Web这个组件不能使用预览,只能使用模拟器或者真机查看。需要在module.json5配置网络权限。2.1 不能用Previewer预览。2.3 加载的不是当前页面。2.2 需要网络权限。

2023-12-14 14:54:06 546

原创 鸿蒙开发之动画

鸿蒙开发中动画按照基础能力分,可以分成三种:属性动画、显示动画、转场动画。使用属性动画产生布局更新动画 显式动画(animateTo)和属性动画(animation)是ArkUI提供的最基础和常用的动画功能。在布局属性(如尺寸属性、位置属性)发生变化时,可以通过属性动画或显式动画,按照动画参数过渡到新的布局参数状态。

2023-12-14 10:44:45 600

原创 鸿蒙开发组件之DatePicker

选择时间的回调也是onChange回调方法,回调对象是TimePickerResult类型,也可以拿到hour和minute。不过,当前版本有个系统bug,默认选中的日期不是今天。注意,回调函数的value是一个DatePickerResult类型的,不是Date类型。作为日期选择组件,当然选择日期才是它的目的,选择日期在onChange的回调函数中。DatePicker是鸿蒙开发中的日期组件,主要用来日期的选择。当然我们的start和end参数是可选的,不必须传递,所以初始化也可以是。

2023-12-13 17:21:19 596

原创 鸿蒙开发之页面与组件生命周期

创建文件的时候记得选择创建page文件,这样就可以在main->resources->profile->main_pages.json中自动形成页面对应的路由了。当我们在点击跳转的时候,会先调用第一个页面的onPageHide,然后调用第二个页面的onPageShow。当通过路由返回的时候先调用第二个页面的onPageHide,然后第一个页面的onPageShow。所以,当我们开启预览的时候,第一个页面加载会先调用第一个页面的onPageShow。我们在Page222页面想要回到第一个页面,可以执行。

2023-12-12 17:26:52 725

原创 鸿蒙开发之状态管理@Watch装饰器

再次调用关注变量的更改。因为函数内部的更改导致change函数的调用,函数的调用又导致变量的更改,不断循环调用导致死循环。@Watch应用于对状态变量的监听。如果需要关注某个状态变量的值是否改变,可以使用@Watch为状态变量设置回调函数。建议@Watch('change')写在@State后边,并且注意@Watch后边传递的参数是字符串。当我们在程序中count的值发生改变的时候就会回调change函数。需要注意的是,在函数内部一定。

2023-12-12 16:28:01 552

原创 鸿蒙开发之状态管理@Observed和@ObjectLink

当对象内引用对象,改变内部对象属性的时候其他状态管理如@State、@Provide、@Consume等是无法触发更新的。同样,在数组内如果有对象,改变对象的属性也是无法更新的。这个基础上,我们需要在点击任务完成的时候,修改任务列表卡片的文字颜色,并中划线。在我们需要监控的对象组件使用@Observed装饰,将需要变更的地方抽取出来作为一个新的组件,新组件内部引用对象使用@ObjectLink装饰。其中,需要注意的第一点,传递父组件的方法时,传递的是this.handleTaskNumber没有()。

2023-12-12 11:03:06 723

原创 鸿蒙开发之状态管理@Prop和@Link

如果想要父组件与孙子组件中的数据达到双向同步,那么就需要先父组件与子组件绑定,然后子组件与孙子组件绑定,需要绑定多次。StaticList组件因为可以对数据进行完成、删除等操作,也会对父组件的数据改变,所以采用双向同步的@Link装饰。在父组件中用@Provide装饰,在孙子组件中采用@Consume装饰,就可以实现双向数据同步。@Prop的数据是单向传递的,父组件改变能通知子组件,但是子组件改变不能通知父组件。@Link的数据是双向传递的,父组件改变能通知子组件,子组件的改变也可以通知父组件。

2023-12-12 10:05:41 1663

tessdata.zip

可以直接使用的tesseract 英语与中文的训练集

2021-10-09

iOS自定义面包屑导航

这是一个自定义的面包屑导航,支持中间省略号动态调整。

2020-12-24

Demo-2.zip

Mac端开发app,利用NSVisualEffectView来实现的高斯模糊效果。demo中采用的NSVisualEffectMaterialDark效果,你自己也可以其他的效果

2020-08-12

LCSSimpleDrawDemo.zip

利用了自定义路径,然后自定义属性实现了笔记粗细的调节,颜色调节等自定义绘图板,实现了绘图板的清屏和擦除

2019-12-02

视频宣传的资源

泸州老窖的宣传视频,用来宣传的小视频,用来链接观看

2018-04-03

ios上下黑边解决办法

ios上下黑边解决办法

2017-06-07

MJExtension工具类

MJExtension工具类

2017-03-16

ffmpeg三方库

ffmpeg类解码h264等格式视频

2017-03-16

libopencore-amrnb.a及libopencore-amrwb.a支持arm64

libopencore-amrnb.a及libopencore-amrwb.a支持arm64

2016-05-24

libidn.a库文件

2016-05-24

抽屉效果三方库

YRSideViewController *sliderController = [[YRSideViewController alloc] init]; sliderController.rootViewController = deviceListController; sliderController.leftViewController = leftViewController;//设置一下控制器 [slideViewController showLeftViewController:true];//展示 [slideViewController hideSideViewController:true];//隐藏

2016-05-13

AFNetworking三方库

用于网络传输下载

2016-05-10

二维码扫描和生成

整理好的,直接能使用,需要设置下路径即可使用

2016-05-10

ffmpeg解码视频的三方库

ffmpeg库,已经整理好的,ios直接就能用,设置下路径即可

2016-05-10

科大讯飞语音Demo

功能还可以,用法简单的,一个语音Demo。

2015-04-30

空空如也

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

TA关注的人

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