- 博客(595)
- 收藏
- 关注
原创 记录鸿蒙开发中网页滚动和底部原生联动的问题
上面的的机制就是在符合条件的情况下,我是网页的滚动手势会被分发到我是原生的组件上,从而达到拖动网页的时候,滚动list。将嘴外层的list的事件进行分发,(网页和底部原生列表都是在list的listitem里面)场景:有这样一个页面,页面的上部分是一个大的网页,底部是一个原生的列表,所以这个时候网页和原生的滚动就出现了问题,所以我们就用到了鸿蒙的事件分发。由于鸿蒙系统的机制,网页的最大高度只能是屏幕高度,不能超出一屏幕高。其中的windowY 都是想等的,都是触摸点像对于屏幕原点的位置。
2024-04-11 21:20:00 122
原创 记录一个在鸿蒙网页中添加原生组件,并跟随滚动的效果实现
第三中情况下,我们设置原生组件在stack中的position为(组件在网页中的位置y - 网页的偏移量)有了这个思路之后,我们就可以写代码了。思路,我们将网页放在一个stack组件上面,然后将 需要嵌入到网页的原生组件也放到网页上。鸿蒙网页中,我们需要在某个位置添加一个原生的组件,比如视频或者音频。第二中情况下,我们将原生组件放到网页顶部(完全滑出网页的位置)第一中情况下,我们将原生组件放到网页组件的底部(超出网页)第一: 当原生组件位置超出网页最底部,第三:就是原生组件在网页中跟随网页滚动。
2024-04-11 21:07:40 208
原创 记录一个鸿蒙开发中获取webView内容高度不正确的问题
/ 点击按钮时,通过loadData,加载HTML格式的文本数据。// 组件创建时,加载www.example.com。这里是web组件初始化的代码。//记录上次网页的偏移量。
2024-04-10 08:21:51 420
原创 关于远程调试应用中的网页鸿蒙
hdc fport tcp:9222 localabstract:webview_devtools_remote_进程ID。然后使用chrome,输入地址查看可调试页面。在ide中找到应用进程ID(日志可以看见)关于远程调试应用中的网页。
2024-03-27 17:17:53 415
原创 记录一个鸿蒙原生想js发送方法不执行的问题
修复方法,需要添加一个空字符串,否则会导致方法不执行。修复代码, 注意,是 "`"符号。原生调用js 方法的错误写法。
2024-03-25 16:58:21 204
原创 记录一个iOS性能优化点
我们可以这样处理,在网络请求结束之后,在自线程中将富文本创建好,保存到model的一个属性中,然后我们展示cell的时候,直接展示就行了,不需要再创建。的时候也是在主线程,这时候就有一个问题,如果cell的数量特别大,并且富文本很复杂,页面滚动的时候,就会有很明显的卡顿,因为在主线程进行了耗能的操作,我们一个列表卡片中要展示多个复杂富文本,开始的写法,是这样的,在给cell的model赋值的时候,去创建富文本,并进行展示,
2024-03-20 21:31:04 224
原创 iOS 实现悬浮跟手滚动效果
透视图就跟着tablView滚动,(通过记录上次偏移量和当前偏移量来实现, tableView滚动多少,头视图就滚动多少),然后限制一下透视的的两个边界位置即可,通过MIN和MAX实现,同时,为了实现性能的优化,在超出临界值之后,就不再设置frame。思路: 透视图不是放在tableView上面,而是放在控制器的view面,当tablView滚动的时候。
2024-03-10 22:00:47 501
原创 记录使用kiwi进行单元测试文件左边不展示运行按钮的问题
进行单元测是的时候,遇到一下一个问题,就是测试文件左上方没有运行按钮,后来经过调试,发现有两个原因可以导致这个问题。2 podfile 中 test的target中,没有添加pod ‘kiwi’, 只在住工程中添加了。1 创建spec文件的时候,没有在test 文件夹和target下。
2024-02-20 08:40:30 377
原创 iOS 使用Image I/O 实现超大图片降采样
一个图片解码成未压缩的位图的时候,占用的内存和图片的文件大小没有关系,和图片的尺寸大小有关系,尺寸越大,所需要的像素点越多,所以超大图片,我们需要进行优化处理。给UIImage 添加一个分类,在分类中添加一个方法 ,该size就是。UIImageView的大小。这里直接上降采样代码。
2024-02-19 22:48:44 1151
原创 iOS datatask的taskIdentifier 是怎么确定的
一个session 可以对应多个task ,并且task的identifier是从1 开始的,每创建一个新的task,task的identifier就增加一。
2024-01-31 14:49:36 416
原创 修复TabbarButton 中标题展示不完全的问题
遇到一个问题,就是从列表页跳转到详情页之后,再返回的时候,tabbarbutton 中的文字变成…label的类型是 UITabBarButtonLabel,通过双层遍历获取到。这里用到了两个点,一个是button的类型是 UITabBarButton。这里就添加了一个容错,在 viewDidLayoutSubviews。标题的宽度不够了,本来是23的,返回之后变成20了。打开图层,如图所示,
2024-01-30 10:23:55 436
原创 封装了一个顺滑嵌套滚动的框架
就是开始滚动的时候,上面的头部和下面的内容是一起滚动的,但是当滚动到segment 的时候,segment是悬停 的,下面的tableView是分区的。
2023-12-03 14:58:47 808 3
原创 ZFPlayer 在tableView列表中播放视频架构设计
需要在如图所示的列表中播放视频,并且播放视频在对应的卡片上,滚动结束的时候, 完整露出封面图的第一个视频自动播放。
2023-12-01 21:09:01 533
原创 ZFPlayer 播放视频的时候的视图层级
首先看正常展示的时候,还没又开始播放这个时候我们打开图层看一下,发现视频时长和播放按钮都是放在视频封面图上的。
2023-11-29 21:31:14 497
原创 convertRect:toView 方法注意事项
newRect.origin = a在c 中的位置 + b.frame.origin。其中newRect和 b.frame的size不变,只改变origin。我们开发中有时候会用到左边转换,convertRect:toView。即是在a视图中 的 b.frame的位置相对于c的坐标。通常情况下,我们回这样使用。这是在网上找到的一张图。
2023-11-24 20:49:40 428
原创 PHPhotoLibrary 获取相册权限注意事项
requestAuthorization 中的回调使用完就释放了,不会造成内存泄漏,反而是如果使用了weak回造成提前释放所以,在该block中,不需要使用weak 引用。
2023-11-19 14:26:01 263
原创 一个iOS tableView 滚动标题联动效果的实现
tableview 是从屏幕顶部开始的,现在有导航栏,和栏目标题视图将tableView的顶部覆盖了。
2023-11-17 23:33:40 211
原创 iOS UITableView获取到的contentSize不正确
通知设置 _tableView.sectionHeaderTopPadding 就可以了。
2023-11-16 22:24:20 750
原创 记录一个iOS UITableView 正在刷新的时候修改数据源导致的崩溃
这时候有一个推测,就是我们执行了刷新,这时候刷新还是使用的老数据,但是刷新是一个异步过程,这时候,如果请求结果返回很快,我们执行了清除数据源,但是刷新还没有完成,正在进行的刷新就无法获取到数据,导致崩溃。由于是崩溃在系统方法里面的,我们无法直接看到是因为调用哪个方法导致的崩溃。这是请求成功之后的调用,清除了数据源(重新请求到的数据为空)从上图可以看出,我执行重新请求之前,刷新了tableView。这时候又有疑问了,因为我这里的崩溃是重新请求之后。解决方法,我们修改数据源,要等到刷新完成之后,
2023-09-27 19:00:26 1130
原创 为什么atomic不是线程安全的
有以上例子可见,atomic只是在三个步骤中的两个步骤分别加了锁,但是并不能保证 读和写的锁同时是被一个线程获取之后,然后被其他线程获取 ,可能是线程一获取到锁之后,被线程2获取到锁,这时候就已经不安全了。所以我们要保证三个步骤都在锁的范围内。
2023-09-25 08:40:17 226
原创 封装了一个中间放大效果的iOS轮播视图
设定在中间展示的size,即正常size,然后设置水平和竖直方向上的margin, 在view的origin和scrollView的contentoffset相等的时候,即视图处在正中间的时候,最大,然后通过计算其他视图的origin和scrollView.contentoffset 的距离设置大小,和contentoffset这个位置的frame的距离为一个视图宽度的时候,达到最小size,即最大size减去margin。
2023-09-23 19:55:55 241
原创 记录一个iOS使用陀螺仪3d效果的抖动问题
使用陀螺仪的时候,遇到一个问题,就是在拖动scrollView滚动的时候,3d效果的图片会抖动。我们打印位置的变化,发现打印太频繁,就修改了时间1/40 为 1 ,由 以上代码可以知道,我们的图片抖动就是图片的位置突变造成的,如果陀螺仪的回调很频繁,那么我们移动了很小的距离,陀螺仪就会。发现我们我们如果不拖动,执行的位置改变没有突变的。我们移动了很大距离之后,才更新位置,导致发生了突变现象,而更新位置就是在陀螺仪的回调方法中实现的,就是说,我们。移动了很大的位置,陀螺仪才进行了回调,这才导致抖动。
2023-09-14 23:45:29 728
原创 记录一个iOS沙盒使用的问题
在开发中,我们经常要使用到沙盒,有时候要将资源的路径保存到本地这时候有一个主意事项,就是我们不能记录完整的沙盒路径,只能记录NSSearchPathForDirectoriesInDomains 之后的路径,因为,每次启动app所创建的NSSearchPathForDirectoriesInDomains 路径都是不一样的,如果我们记录了完整的路径,那么下次启动的时候,就会创建一个新的路径,导致我们使用原来的路径无法获取之前的资源。
2023-09-07 21:16:22 226
原创 AFNetworking 实现下载请求的原理过程
由以上代码可以看出,在该代理方法中,先获取AFURLSessionManagerTaskDelegate对象,然后让AFURLSessionManagerTaskDelegate 对象执行和代理方法名相同的方法。可以看出,创建的AFURLSessionManagerTaskDelegate对象被放在了 self.mutableTaskDelegatesKeyedByTaskIdentifier这个字典中,并且以。网络请求相关的代理方法都是由 AFURLSessionManager 实现的,如图。
2023-09-04 21:56:50 259
原创 iOS 使用coreData存贮页面的模型数据中的字典
注意点,我们CoreData中的字段是不能直接存贮我们自定义对象类型的,所以,如果我们要存贮的字段如果是一个自定义对象类型,则要将该字段成字段类型,然后转换成Data存贮。我们使用coreData时候,会遇到较为复杂的数据类型的存贮,例如,我们要存一个模型,但是一个模型里面有个字典,这时候,我们该如何存贮呢。我们实现一个公共的方法,将对象的所有属性都赋值给对应的coreData模型。读取数据的时候,将coredata的所有字段赋值给我们使用的模型对象。如图所示,一个对象中含有一个字典。
2023-08-31 22:04:37 597
原创 iOS 设置下载部分文件,如何获取完整文件的大小
Content-Length来获取,因为这个时候Content-Length 是我们设置的请求部分的大小,不是完整的大小。通过获取响应头的 Content-Range 字段来获取,注意,不能通过。在视频的需求中,遇到这样一个需求,播放一视频的时候,要预下载。后面10条视频,但是只下载后面十条视频的前面1M。1 创建请求时设置cacheLength。二 创建请求时,设置 请求头的Range。三 如何获取完整文件的大小。
2023-08-31 08:19:22 1318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人