- 博客(84)
- 收藏
- 关注
原创 flutter遇到问题及解决方案
1、easy_refresh相关问题2、 父子作用域关联问题3. 刘海屏底部安全距离4. 了解保证金弹窗 iOS端闪退 (待优化)5. loading无法消失6. dialog蒙版问题7. 倒计时优化8. scrollController.offset报错9. 断点不走10.我的出价报红11. 竞拍大厅折叠效果与滚动冲突 & 加载完成状态无法上拉加载12. 加载网络图片失败的页面返回报错(未解决)13. flutter页面进入后快速返回 报错14. list.first 报错
2024-09-20 16:05:22
1746
原创 Widget小组件
Widget小组件开发须知1、只能使用SwiftUI进行开发,所以需要SwiftUI和Swift基础2、Widget只支持3种尺寸systemSmall(2x2)、systemMedium(4x2)、systemLarge(4x4)3、默认点击Widget打开主应用程序4、需要在项目中进行App Groups的设置才能使其与主程序互通数据
2023-01-16 11:43:29
4823
原创 组件优化 - 多project方案
经销商项目目前是混合项目,有oc、swift、flutter,并对应各自的一些三方库,并随着需求的增加,项目代码体积也越来越大,编译速度也相应的慢了很多,这也严重影响了开发速度,故目前的期望是可以大力度降低编译的时间,考虑到项目中已采用组件化方案,如果每个组件只需要编译当前组件的代码,而不需要编译其他无关的代码,那么编译速度就可以极大的降低,故有了此次的技术优化需求。
2023-01-16 11:07:01
658
原创 日志捕获小工具
开发过程中,为了便于调试,会输出很多打印日志,而只有当电脑连着真机进行调试的时候,Xcode控制台才会有日志输出。这也就意味着如果未处于调试状态时,是看不到Xcode控制台的日志输出的,那么如果还想看到日志输出,那么这个功能就尤为重要了。
2023-01-16 10:46:49
958
原创 MJRefresh的RxSwift用法 及ViewModel绑定 使用说明
MJRefresh的rxswift用法 及ViewModel绑定使用说明
2022-10-18 15:36:26
785
原创 OC中因不同文件中C语言方法重名报错
今天发现,封装在私有库中的文件中有一个C语言方法,在项目中一个文件中同样定义了一个同名的C语言方法导致因C语言方法重名导致报错。原因:c语言没有namespace,即使在不同文件中,方法也不能重名。解决方案:1.功能相同的方法要抽到一个.c文件中实现。2. 用static修饰,就说明函数只是在该模块内被调用。3. 改为OC方法仅以记录...
2019-05-15 15:24:26
634
原创 身份证银行卡类添加空格分割
- (void)textFieldDidChange:(UITextField *)textField { NSInteger textLength = textField.text.length; NSString *text = [textField text]; text = [text stringByReplacingOccurrencesOfString:@...
2019-05-10 16:17:44
486
原创 内存泄漏以及内存排查技术分享
内存泄漏区分两个基本概念:·内存泄漏(memory leak):是指申请的内存空间使用完毕之后未回收。一次内存泄露危害可以忽略,但若一直泄漏,无论有多少内存,迟早都会被占用光,最终导致程序crash。(因此,开发中我们要尽量避免内存泄漏的出现)·内存溢出(out of memory):是指程序在申请内存时,没有足够的内存空间供其使用。通俗理解就是内存不够用了,通常在运行大型应...
2019-04-26 11:29:13
3183
原创 通信加密算法
1.通过简单的URLENCODE + BASE64编码防止数据明文传输2 对普通请求、返回数据,生成MD5校验(MD5中加入动态密钥),进行数据完整性(简单防篡改,安全性较低,优点:快速)校验。3 对于重要数据,使用RSA进行数字签名,起到防篡改作用。4 对于比较敏感的数据,如用户信息(登陆、注册等),客户端发送使用RSA加密,服务器返回使用DES(AES)加密。原因:客户端发送之所以使用RSA加密,是因为RSA解密需要知道服务器私钥,而服务器私钥一般盗取难度较大;
2018-03-10 23:39:41
8656
原创 iOS 判断是否设置代理
只要是网络设置了代理,那么就禁止一切网络访问,这里记录一下如何判断是否设置了代理。 需要导入框架CFNetwork 然后,这个方法是mrc的:需要添加-fno-objc-arc的flag 代码如下:#import "CETCProxyStatus.h"@implementation CETCProxyStatus+ (BOOL)getProxyStatus { NSDictionary
2017-09-27 16:29:23
3390
转载 使用Xcode进行iOS设备无线调试
设备环境:Mac OSX 10.12.5、iOS11、Xcode9PS:这是WWDC2017的新功能,iOS11以上,Xcode9这是刚性要求。这个功能不好找,就记下来了手机连接上Xcode,打开Xcode菜单:Windows->Device and Simulators。找到连接上的设备,把Connect via network选项打勾。之后Xcode将会转一会圈圈,耐心等待一会
2017-09-21 14:51:40
526
原创 圆点view被切掉一块的bug
需要实现有新消息提醒时在title的右上角有红点提示,一个本来很简单的功能,但是遇到一个很奇葩的问题,有一个红点在6、6p上显示,红点的右边会有一点点被切平了,但是其他的几个红点是好的。真是一个很无语的bug啊 FUCK YOU MONEY 然后我就只能去跟这个bug,看看在3d视图显示上是啥样的,看了后发现,哈,真圆,圆的不能再圆了。
2017-08-10 10:07:28
529
原创 iOS实现从后台切换到前台有毛玻璃效果
为了保护用户的隐私加入了后台毛玻璃效果(其实并没有什么卵用),怎么实现呢,其实很简单,只需要在appDelegate中写几行代码即可.1. OC版本首先声明一个变量 visualEffectView@property (strong, nonatomic)UIVisualEffectView *visualEffectView;- (UIVisualEffectView *)visualEffec
2017-07-12 10:36:38
1032
转载 iOS判断一些权限是否被禁止
iOS中经常会遇到访问相册、相机、麦克疯、蓝牙、以及推送等权限,所以每次我们要使用这些权限是都要记得查看用户是否允许了,如果用户禁止了你的访问权限,你仍然去调取相册或者相机等,那么就会先出现下面的这个提示。而且是英文的,这时候用户可能有些懵逼了,这个时候我们最好给一个提示,用户点击确定后,我们最好贴心的跳转到应用的权限出,让用户一键允许。权限被禁用1.查看相册权限是
2017-07-11 13:45:18
798
原创 扫描银行卡,获取银行卡号 - Card.io
实现功能:通过扫描银行卡,获取银行卡号。在网上搜过后,选用了card.io这个SDK,其他的都要收费,不过这个sdk只能扫描有凸起的银行卡,平面字体无法识别。过程如下:(1)下载Card.ioCard.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.io添加到自己的应用当中。可以在https://git
2017-07-11 13:24:48
2435
原创 金额输入正则判断
实现功能:1. 可以输入整数2. 可以输入一位和两位小数3. 最多能输入一个小数点4. 整数部分避免出现001,032,这种情况金额输入限制:整数部分10位数,最多保留两位小数实现方法:- (BOOL)textField:(UITextField *)textField shouldChangeCharac
2017-07-11 11:01:05
684
原创 iOS tableview SDWebImage加载多张图片内存警告(received memory warning)
最近项目中遇到一个问题在tableview上展示多张图片,在加载的过程中,图片过多时,加载几张图片就崩溃了。内存溢出为什么会出现这种情况这个原因其实很明显,SDWebImage产生的图片缓存过多,造成APP内存溢出,崩溃了。查了一些资料有三种解决方法1. 更改图片的大小,在tableview中展示缩略图,点击查看的时候显示原图。其中看到的一篇意思到了(传
2017-07-04 17:04:36
3593
原创 iOS 使用UITextField自动格式化银行卡号
代码有问题,可参考最新的文章。https://blog.youkuaiyun.com/qq_25303213/article/details/90074174项目中需要输入银行卡,希望自动按照4为分组格式化。//这里没有增加银行卡长度限制在确定提交给服务器的时候,重新格式回不带空格的字符串就好了self.textField.text = [self.textField.text s...
2017-07-03 11:20:36
566
原创 物理仿真-单摆球
GitHub:https://github.com/LearnMoreAndBetter/DynamicDemo实现单摆球功能代码调用1. 添加仿真行为2. 添加的 kvo方法作用是当监听到小球的中心变化时执行 setNeedDisplay方法走了这方法后就会重新绘制3. 使用 touc
2017-06-28 17:28:31
1911
1
原创 物理仿真中的圆形碰撞
在上一节中发现了个问题,几个球之间的碰撞看似是球与球之间的碰撞,实则是矩形之间的碰撞。这一节就解决这个问题。UIDynamics 的第一个版本带有碰撞系统只支持矩形。这可以理解,因为UIViews都是矩形架构,但是圆形的却不常见,更不用说优化一个自定义的贝塞尔曲线。在iOS 9中,UIDynamicItem协议里加了一个新属性:UIDynamicItemCollisionBoundsTyp
2017-06-27 14:53:00
753
原创 汉诺塔游戏和物理仿真
GitHub:https://github.com/LearnMoreAndBetter/DynamicDemo/* 汉诺塔游戏规则: 1、将盘子全部移动到塔C 2、每次只能移动一个圆盘; 3、大盘不能叠在小盘上面。 */1. 视图创建2. 递归算法实现功能
2017-06-26 17:15:44
615
原创 金额输入按照元角分格式,不需要输入小数点
GitHub : https://github.com/LearnMoreAndBetter/RMMoneyTextFieldDemo/tree/master最近项目中需要实现一个功能:1. 输入金额时,按照元角分格式输入,不需要输入小数点。比如输入1,就显示0.01,再输入2,变为0.12,再输入3,变成1.23。。。以此类推~(功能虽然奇葩了点,但是还是要去实现的)2. 保留两位小数3. 不限制金额长度4. 小数点前整数部分过三位数,加逗号分隔
2017-06-26 13:32:19
2559
转载 IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母
今天在项目中需要用到判断用户输入的用户名长度为8-16位且同时包含数字和字母,在网上搜了一下正则表达式的用法,然后参考这篇blog,完美解答了问题。记录一下:密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。如何分析需求?拆分!这就是软件设计的一般思路了。于是乎,拆分需求如下:1,不能全部是数字2,不能全部是字母3,必须是数字
2017-06-22 14:24:22
1145
原创 两种定时器的封装
GitHub:https://github.com/LearnMoreAndBetter/RMTimerDemo# RMTimerDemo定时器封装本项目中对两种定时器进行了封装,dispatch_source_t和NSTimer关于这两个定时器,还是有点区别的:使用NSTimer常常会不准时,因为它被添加到RunLo
2017-05-27 10:53:06
1076
原创 时间轴
# RMTimeLineDemoGitHub:https://github.com/LearnMoreAndBetter/RMTimeLineDemo简单的时间轴,和动态缓存高度这里用到了一个简单的思路,把时间轴的线条当做一条完整的线,然后通过scrollview的滚动,修改lineview的frame,这样就不需要在每一条cell中添加
2017-05-26 11:10:22
559
原创 ShareSDK分享以及所遇到的一些问题
GitHub:https://github.com/LearnMoreAndBetter/RMShareDemosdk下载,当前项目用的是简洁分享视图分享中遇到的一些问题简洁分享UI不显示图标 解决方法: 包含头文件#import 设置Style:[SSUIShareActionSheetStyle setShareActionSheetStyle
2017-05-23 17:10:44
845
原创 Model基类与字典中嵌套数组时Model的处理方法
RMBaseModelmodel基类与字典中嵌套数组Model的处理方法RMBaseModel :Model基类实现字典与model之间的转化实现Model的descriptionRMFirstModel继承自RMBaseModel处理字典中嵌套数组的问题 得到 Model中嵌套Model数组 方便后面的数据处理平时的Model只需继承自RMBase
2017-05-22 15:14:55
1517
原创 画虚线
RMDashLine画虚线本项目选择两种方法实现虚线的画法RMDashLineView :drawRect UIBezierPath画虚线RMDashLineLayerView :通过Layer层画虚线调用方法 与正常view创建方法一致RMDashLineView RMDashLineView *line1 = [[RMDashLine
2017-05-19 09:59:41
632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人