关于开发鸿蒙APP的建议
发表于|更新于
|浏览量:
背景
实现
参考
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-08-20
iOS输入框字符限制
背景小知识点记录,textField的markedTextRange的使用,如果你已经知道了,就不需要再看了。 iOS输入框字符限制,不同实现方式的对比: 方法1,通过监听textField的UIControl.Event.editingChanged,在对应的方法里做长度拦截判断 方法2,通过textField的代理方法,textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool判断。 对比假设产品要求这个输入框限制输入6个字,怎么判断?下面来看下 方法1声明一个自定义的MWCustomTF,然后监听editingChanged事件,在事件里判断输入字符是否超出最大输入长度,代码如下: 123456789101112131415161718192021222324252627282930313233343536class MWCustomTF: UITextField { ...
2022-12-12
iOS界面黑白实现
背景iOS APP界面黑白效果实现调研整理,总的来说网上目前有下面几种方法: 针对H5网页:注入js代码 针对APP原生界面: 针对图片和颜色单独设置 hook UIImageView的setImage方法,添加UIImage的Category,生成灰色图片 hook UIColor的colorWithRed:green:blue:alpha:方法 针对界面整体处理 创建一个灰色view,设置不响应事件,然后添加在window最上层 给App整体添加灰色滤镜 具体如下: 实现针对网页:针对网页的处理: 如果有基类,可以直接在基类初始化WKWebview的地方,添加如下代码: 123456WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];// js脚本NSString *jScript = @"var filter = '-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%); -ms-fi...
2021-12-27
iOS SDK 不支持模拟器解决办法
背景iOS 第三方 SDK 不支持模拟器,报错提示: building for ios simulator, but the linked framework ‘’xxx(比如: IDLFaceSDK.framework)” was built for ios 解决办法.。 解决办法首先,在Target -> BuildSettings -> Excluded Source FileNames -> Debug 中添加一行,注意,key选择 Any iOS Simulator SDK,value 中添加报错中提示的 SDK的目录,示例如下: 然后,在项目中,引用对应 SDK 头文件,以及使用 SDK 方法的地方添加如下代码判断 1234567891011121314#if !(TARGET_IPHONE_SIMULATOR)#import <xxx/xxx.h>#endif#if !(TARGET_IPHONE_SIMULATOR)[xxx share].yyy = xxx;#endif
2021-09-10
gitignore 添加 Pod 三方库
背景最近项目遇到了一个问题,排查了好久,最后发现是Pod 依赖的私有组件的代码有问题,导致了打包的时候线上包出现了问题。 笔者的项目按照功能抽象出了私有组件,使用 Pod 的方式导入项目,但是 Pod的内容是不提交到 git 的,即每次 Pod 修改,在 主项目的git变更中看不到。于是就遇到了这个问题。 先在主项目中调试的时候,修改了 Pod库的内容。然后把修改内容同步到了 Pod 库单独的项目。但是最后打包的时候 Pod 库的内容却是老的。因为项目里依赖的 Pod 库指定了版本,而更新 Pod库单独的项目时,只同步到了分支上,没有更新新的 Tag。于是再次更新主项目的库时,这个库的内容就又变回了老的。 Ps:理论上来说,放入 Pod 库的内容不应该被频繁修改,是抽出的基础库之类的。但是实际开发中,为了组件化,有些功能组件也会作为私有库使用 Pod 依赖,这些库可能是频繁变更的。 基于这点,笔者感觉还是把 Pod 中的内容,放入主项目的 .git 中比较好,方便看出修改,能够避免出现上面的问题。 修改笔者直接进入项目工程所在目录,编辑.gitignore文件,移出文件中 #...
2024-03-16
Pod 私有库相互引用
私有库的相互引用文章是转载自OC和Swift混合开发(Pod私有库的相互引用),在这里记录一下,方便以后查看。 概述:该文档主要介绍OC和Swift混合开发相互调用,包括3大类情况和12种具体情形。 三大类情况: 主工程内的混合互调, 主工程和Pod三方库之间的混合互调, Pod三方库和其他Pod三方库之间的混合互调。 十二种情形: 主工程内的OC 调用 主工程内的OC:#import “NSObject.h” 导入头文件直接调用。 主工程内的OC 调用 主工程内的Swift: 1. 主工程中创建.pch文件,在TARGETS -> Build Setting -> 搜索pch -> 设置.pch文件的路径, 2. 在.pch文件中添加 : 例如:#import “xxxxx_Swift.h” (该文件命名规则为:”工程名_Swift.h”,该文件为系统自动生成) , 3. 编译之后才可自动识别需要调用的Swift的文件 。 主工程内的OC 调用 OC的Pod三方库: #import ...
2022-05-06
iOS Widget
iOS Widget背景一开始是发现支付宝的 Widget 做的很好看,打算仿作一个,做的过程中才发现,原来 Widget 有这么多好玩的地方。所以,在这里记录分享一下: 你知道如何创建类似于 QQ 同步助手的 Widget 吗? 你知道类似于东方财富的不同组 Widget 效果是怎么实现的吗? 你知道下图中支付宝Widget功能是怎么实现的吗? 或者这么问,对于这几个的概念:supportedFamilies、WidgetBundle以及Configurable Widget是否知晓,如果都知道,那就不需要看本篇文章了。 QQ 同步助手的Widget只显示一个Widget的效果,是设置了 Widget 的supportedFamilies只有systemMedium 样式; 东方财富的多组 Widget,是通过WidgetBundle实现的,可以设置多个Widget,每个 Widget 都可以设置自己的大中小;区分是否使用了 WidgetBundle,可以通过滑动时,Widg...