- 博客(68)
- 收藏
- 关注
原创 利用runtime为封装MJRefresh的分类添加分页页码属性
需求:对MJRrefresh进行一层基础封装,实现多种方法并可在全局调用。在MJRrefresh加载数据完成后返回分页页码方法:为UIScrollView添加基于MJRefresh的分类(Category)。由于Category中使用@property并不能在分类中正确创建实例变量和存取方法。在Runtime中,objc_class结构体大小是固定的,不可能往这个结构体中添加数...
2019-08-02 16:09:05
269
原创 MJRefresh上拉分页时提前加载(保证视频播放列表在划动分页时顺畅播放)
如上图,视频播放列表有20个条目,当从第20条时继续上拉时,直到上拉完成才进行下一页的数据加载,产生了上图的跳动,极为影响用户体验。解决方式:翻看源码头文件,找到如下图所示属性在刷新方法的代码中为该属性设置一个偏移值,当上拉达到偏移值时,便开始加载数据- (void)addFooterPreloadWithAutomaticallyRefresh:(BOOL)automa...
2019-07-31 18:00:41
2120
原创 UISlider滑块大小与高度的自定义
需求:需要自定义UISlider的高度及滑块大小(UISlider滑动条的高度及滑块大小系统默认给我们设定了,没有办法进行改变。)方法:滑块大小可以通过设置滑块图片,图片大小为滑块需要大小实现;滑块高度需要写一个UISlider的子类,重写系统方法代码:下面代码在自定义Slider中将高度固定死,若要复用可通过增加高度属性完成OC版本:// MXSlider.h#i...
2019-07-31 16:43:54
7993
原创 iOS - 获取UIImage所在的系统路径
需求1:从相册选择图片要获取图片的路径代码:如果我们得到PHAsset的对象(itemModel.asset),我们可以通过PHAsset获取到图片的路径,名称,大小。PHImageManager.default().requestImageData(for: itemModel.asset, options: nil) { (imageData, _, orientation, i...
2019-07-26 11:11:25
5162
原创 Swift - 实现数组的深拷贝
关于数组深浅拷贝问题可参考关于 strong,copy,深拷贝,浅拷贝 的整理这篇文章,本文不再详述。在此仅列举一具体案例,并记录解决方式,以供参考。json数据结构:json={ "data" : { "data" : [ { "shop_id" : 1, "product_list" : [ {...
2019-05-29 12:21:37
3130
原创 tableViewCell嵌套collectionView,执行reloadData时跳动问题记录
如上图,热销下的多方格为tableViewCell中嵌套的collectionView,在添加商品成功并刷新tableView时,发生不规则跳动问题。问题原因:tableView中的所有Cell均采取自适应高度(UITableView.automaticDimension),且estimatedRowHeight未给予合理的高度。每当重新刷新table时,由于没有合适的预高度,从刷新t...
2019-05-24 10:58:36
2599
原创 MARK:打开旧项目遇到问题
1. xxx has conflicting provisioning settings打开项目的project.pbxproj文件,全局搜索b9c32186-a5ad-43dd-a910-1c639b1ad5c3,把指定行删除然后保存参考链接-I 2. Multiple commands produce '....../Info.plist'解决方案:选择 xcode ...
2019-01-04 10:35:05
151
原创 iOS设置指定位置圆角(swift)
思路:1、用贝塞尔曲线绘制指定圆角路径 2、创建一个CAShapeLayer,设置shapeLayer.path等于绘制的路径 3、将shapeLayer作为控件的layer.mask代码:1.在UIView的扩展类 --Extension+UIView中,添加以下方法:func configRectCorner(corner: UIRectCorner, radii: CG...
2018-11-22 18:01:25
1195
原创 iOS项目上传至AppStore问题汇总
Problem 1: Invalid Swift Support - The files libswiftPhotos.dylib, ...... don’t match /Payload/stylist.app/Frameworks/libswiftPhotos.dylib, ......构建版本并成功上传至iTunesConnect,版本被拒并受到邮件,内容如上Answe...
2018-11-15 11:29:38
457
原创 UICollectionView进行ReloadData时,隐式动画解决
在刷新请求后对CollectionView进行reloadData,产生如上图所示的隐式动画效果。解决方式:[self.collectionView reloadData];[UIView animateWithDuration:0 animations:^{ [self.collectionView performBatchUpdates:^{ [self...
2018-10-25 16:09:37
5437
1
原创 旧项目引入CocoaPods遇到的坑
在给旧的项目引用CocoaPods时,当创建好Podfile后,进行 pod install指令。控制台发出如下信息,若直接编译则遇到 ld:library not found for -lPods-XXX 的报错。 这是关联路径不对,所以查找不到关联库。应该是新版pods对关联库这块进行了更新, Pods-XXX 变成 XXX,而clone下来的项目的buildsettin...
2018-09-06 18:15:45
799
1
原创 Cell上textField键盘的收回
采用在Controller中,为TableView添加手势的方法,当点击时停止编辑在ScrollView的代理方法中添加方法,当滑动时停止编辑 - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self.tableView endEditing:YES];} ...
2018-06-20 10:29:12
744
原创 RN项目中使用ESLint
ESLint 是用来检查我们写的 JavaScript 代码是否满足指定规则的静态代码检查工具。通过用 ESLint 来检查一些规则,我们可以:统一代码风格规则,如:代码缩进用几个空格;是否用驼峰命名法来命名变量和函数名等。减少错误,如:相等比较必须用 === ,变量在使用前必须被声明,在条件语句中不能使用赋值语句等。提高代码质量,如:函数最多有多少条件分支;最多有几个参数,代码块最多能嵌套多少层...
2018-05-11 10:19:55
1405
原创 RN项目中接入 Mob-X
参考链接:Mobx仓库: https://github.com/mobxjs/mobxMobx-react仓库: https://github.com/mobxjs/mobx-reactMobx中文文档: http://cn.mobx.js.orgmobx-react原理解析: 点击打开链接安装:npm install mobx --savenpm install mobx-react -...
2018-05-03 11:02:08
564
原创 RN中通过 callback 改变 state
Introduction: TestNetwork中有两个按钮,点击后在testNetworkModel中请求到数据后,通过callback回传,改变state并显示。class testNetworkModel { constructor(codeCallback, mailCallback) { this.cCallback = codeCallback; // 验...
2018-04-23 11:47:27
721
原创 React Native 常用命令
Yarn命令文档:https://yarnpkg.com/zh-Hans/docs/cli/ 点击打开链接npm中文文档: https://www.npmjs.com.cn 点击打开链接 参考: Yarn命令使用: https://blog.csdn.net/mjzhang1993/article/details/70092902 点击打开链接1. 查看当前reactNative版本react...
2018-04-20 14:59:08
206
原创 RN中 ref 的使用
Introduction: ChatFootBar为ChatScreenIndex中用到的一个组件。在ChatScreenIndex中,当监听到某一事件发生时,在ChatFootBar组件中显示一个提示的AnimatedView,若干秒后AnimatedView渐变消失。 ChatScreenIndex:// 定义chatFootchatFoot = null;// ...
2018-03-30 11:21:27
4033
2
转载 SourceTree保存密码--解决每次pull、push都要输入两次密码的问题
1、SourceTree每次Pull和Push时都要输入密码,确实很不方便:2、提供一个简单的解决方法,即在远程仓库的url中显示输入username和password,每次就不用再重复输入,当然也有一定的安全隐患,可根据实际情况决定是否采用。1)选中菜单:Repository(仓库)-- Repository settings(仓库设置) --Remotes--选中u
2017-12-11 11:27:34
1344
原创 模态弹框Vc
MXPayViewController *pVc = [[MXPayViewControlleralloc] init];pVc.modalPresentationStyle =UIModalPresentationOverFullScreen;[selfpresentViewController:pVcanimated:NOcompletion:nil];
2017-08-07 22:56:53
287
转载 -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法
-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法:错误:NSMutableDictionary*d =[[[NSUserDefaults standardUserDefaults] objectForKey:@"xxxx"] mutableCopy];修改:NS
2017-08-07 15:27:18
278
原创 json文件转为plist文件输出(及文件存放路径)
从xx.json文件中读取JSON数据,写入到xx.plist文件中,实现代码如下: NSString *path = @"/Users/apple/Desktop/testJtoP/testJtoP/1_category.json"; NSArray *array = [NSJSONSerialization JSONObjectWithData:[NSData dat...
2017-07-20 18:33:14
1854
原创 marked
NSString *cardId2 = [rechargeInfosubstringWithRange:NSMakeRange(32,8)]; cardId2 = [NSStringstringWithFormat:@"%08ld",strtoul([cardId2 UTF8String],0,16)];
2017-03-23 16:34:44
358
原创 编译报错:Duplicate Symbols for Architecture arm64
以下方法都非常容易排查,可以依次参考。1.查看报错信息中的文件,直接在工程左侧文件目录中搜索。这个没什么难度2.检查是否在#import头文件的时候,不小心把.h写成了.m。ps:我没有这样的错误,不过很多人都提到这一点。3.查看被编译的文件中是否有重复的(如果有文件显示红色一般是编译器没有找到的文件)。进入Target->Build Setti
2017-02-23 17:12:14
1655
原创 编译报错 clang: error: no input files
clang: error: no input files这个问题一般是因为你删除或者移动了某一个文件,但是在你的编译资源里面( project > target > Build Phases > Compile Sources)还存在它,只要在(project > target > Build Phases > Compile Sources)里面把那些红色的文件删除掉,就可以编译过了。
2017-02-15 10:49:44
24240
原创 ios 让APP一直亮屏
- (void)viewWillAppear:(BOOL)animated{ [[UIApplicationsharedApplication] setIdleTimerDisabled:YES];}- (void)viewWillDisappear:(BOOL)animated{ [[UIApplicatio
2017-02-14 16:11:41
1112
原创 macbook使用“终端”远程登录linux主机
在打开的终端页面,输入如下代码:ssh user@hostname注:上边代码为固定格式,其中 user 为 linux 服务器的管理员名称 hostname 为 linux 服务器的IP如: ssh haibor@1.2.3.4如此就可以像windows下的putty工具一样远程登录管理你的linux服务器了。
2017-02-06 14:11:37
3138
转载 ios 约束冲突NSAutoresizingMaskLayoutConstraint
Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out whic
2017-01-12 10:35:49
2835
转载 ios运行时那些事
文/夜_阑珊(简书作者)原文链接:http://www.jianshu.com/p/c2f382941a0b前言什么是运行时(runtime)?首先我们要先知道编程语言有静态和动态之分。所谓静态语言,就是在程序运行前决定了所有的类型判断,类的所有成员、方法在编译阶段就确定好了内存地址。也就意味着所有类对象只能访问属于自己的成员变量和方法,否则编译器直接报错。比较常见
2016-12-07 15:56:21
320
转载 iOS播放远程网络音乐的核心技术点
文/夜_阑珊(简书作者)原文链接:http://www.jianshu.com/p/31644a7f581c一、前言这两天做了个小项目涉及到了远程音乐播放,因为第一次做这种音乐项目,边查资料边做,其中涉及到主要技术点有:如何播放远程网络音乐如何切换当前正在播放中的音乐资源如何监听音乐播放的各种状态(播放器状态、播放的进度、缓冲的进度,播放完成)如何手动操控播放进度如
2016-12-07 14:43:41
455
转载 iOS应用之间的跳转
来源:夜_阑珊链接:http://www.jianshu.com/p/6b746f95b568一、前言泰国渡了半个月的假,回来发现有段时间没更新博客了,顿时感到浑身焦虑啊,而这段时间也不断有小伙伴关注我的简书账号,让我感到欣慰的同时心理也是沉甸甸的压力,唯有写出高质量、好的博文作为回报了。昨天项目经理问我:能不能从我们的app应用跳转到合
2016-12-07 14:38:11
256
转载 Objective-C内存布局
原文 http://www.cnblogs.com/csutanyu/archive/2011/12/12/Objective-C_memory_layout.html在我的理解来说: 对象(object)即一块内存,本文要探讨的是一个Objective-C对象在内存的布局(layout)问题,水果的官方文档有说,一个类(class)如果不需要从NSObject继承其某些特定的行为是不
2016-11-23 16:38:43
210
原创 runtime--获取对应类的变量及属性
测试代码#import "ViewController.h"#import #import "Dog.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Dog * dog = [[D
2016-11-23 15:46:32
243
转载 蓝牙后台接收数据(BLE4.0)
原链接:http://blog.csdn.net/hitwhylz/article/details/286649391.在xxx-info.plist文件中, 新建一行 Required background modes , 加入下面两项。App shares data using CoreBluetooth 和 App communicates using
2016-11-23 10:03:33
546
转载 TCPIP三次握手与四次挥手
TCP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset
2016-11-22 11:19:19
365
转载 手机上获取udid方式
1 设备标识UDID码获取:http://fir.im/udid 或者直接手机自带的浏览器输入那个网站链接也可以的。打开链接点击右上角3点点击在Safari浏览器中打开,就是像一个指南中的图标点进去在点右上角安装 然后可能要输入密码 这个密码就是你手机的密码 安装好后就出来了一排40个字母的设备标识码 然后复制了发过来就好了。2 序列号在手机设备上 设置 通用 关于本机 序列
2016-11-21 14:42:41
1351
转载 iOS之访问权限以及跳转到系统界面
原文链接:http://www.jianshu.com/p/1fb3f60b689aiOS开发中有时候有这样的需求:当用户设置不允许访问照片、麦克风和相机等系统权限的时候,这时需要直接跳转到系统的隐私界面进行设置。判断是否开启权限前面已经说过,我们需要在用户不允许访问的时候跳转,那么首先我们就要判断一些是否已经开启系统相机权限了。照片权限检测需要:#impo
2016-11-21 11:29:22
541
原创 NSNotification带参数
发送通知[[NSNotificationCenterdefaultCenter] postNotificationName:OTAUpdatingNotificationobject:characteristic];接受通知[[NSNotificationCenterdefaultCenter] addObserver:selfsel
2016-11-09 14:14:46
384
翻译 uuid udid区别
UUID(Universally Unique IDentifier)是基于iOS设备上面某个单个的应用程序,只要用户没有完全删除应用程序,则这个UUID在用户使用该应用程序的时候一直保持不变。如果用户删除了这个应用程序,然后再重新安装,那么这个UUID已经发生了改变。通过调用[[UIDevice currentDevice] identifierForVendor];方法可以获取UUID。UUI
2016-10-11 13:57:33
696
转载 Mac AppStore 登陆提示 未知错误
原博客:http://blog.csdn.net/a542551042/article/details/47102473Mac Book 登陆的时候提示未知错误,刚开始以为是需要内建网卡后来才得知:如果是黑苹果,或者是网卡没有对应上的,需要内建网卡 mac 系统默认的是无线网卡en0 其他都网卡 以此类推如果是mac机本身,出现的问题,那
2016-09-23 10:06:50
3429
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人