![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS
文章平均质量分 51
wf_breeze
这个作者很懒,什么都没留下…
展开
-
iOS11 自定义UIBarButtonItem显示异常解决方案
iOS11之前: self.leftButton = [UIButton buttonWithType:UIButtonTypeCustom]; [self.leftButton addTarget:self action:@selector(leftDrawerButtonPress:) forControlEvents:UIControlEventTouchUpInside];原创 2017-09-21 16:26:01 · 2757 阅读 · 0 评论 -
iOS11 使用UIKeyboardFrameBeginUserInfoKey部分场景获取键盘高度为零
业务场景中需要在键盘弹起后重新布局,在review代码时发现收到UIKeyboardDidShowNotification通知时是用如下方式获取键盘frame: CGRect keyboardFrameBeginRect = [[[notification userInfo] valueForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]原创 2017-09-29 11:10:25 · 2740 阅读 · 0 评论 -
iPhoneX无导航栏页面适配
原全屏适配在iPhoneX会由于安全区域的变化导致显示不全。 解决方案如下: 在self.view上添加一个view,剩下的视图基于该view布局,view的约束随self.view.safeAreaInsets的改变需要重置:- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after l原创 2017-11-13 09:56:46 · 2262 阅读 · 0 评论 -
Instrument使用总结
Instruments简介 Instruments是一个强大而灵活的性能分析和测试工具,它是Xcode工具集的一部分。 它旨在帮助您分析OS X和iOS应用程序,进程和设备,以更好地理解和优化其行为和性能。 将Instruments从应用程序开发流程开始纳入您的工作流程,可以帮助您在开发周期的早期发现问题,从而为您节省时间。 有效的使用Instruments,你可以:检查一个或多个应用程序或进原创 2017-12-11 11:13:26 · 2666 阅读 · 0 评论 -
URL编码解码
URL中有中文的时候,很容易注意到编码解码。而在URL中含有特殊字符时,编码解码通常容易被忽略。在开发中使用^符号分割字符串,URL编码后^符号变成%5E,导致处理的业务逻辑异常。1.URL编码ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是:NSString * encodingString = [urlString stringByAddingPercen原创 2018-01-19 09:29:22 · 464 阅读 · 0 评论 -
iOS 实现react-native预加载,优化第一次加载白屏问题
项目中存在多个react-native页面入口,每个入口使用以下方法初始化:- (instancetype)initWithBundleURL:(NSURL *)bundleURL moduleName:(NSString *)moduleName initialProperties:(NSDictionary原创 2018-01-29 10:26:08 · 3926 阅读 · 0 评论 -
UIWebView拦截资源请求
项目中web页埋点以加载资源文件的形式发起请求,当客户端拦截到该请求时,要求放弃发送该请求,改为客户端统计此次埋点事件。NSURLProtocol可以拦截监听每一个URL Loading System中发出request请求,记住是URL Loading System中那些类发出的请求,如果不是这些类发出的请求,NSURLProtocol就没办法拦截和监听了。原创 2018-01-29 15:16:00 · 2055 阅读 · 0 评论 -
iOS8.0+ NSMutableAttributedString在末尾换行处插入图片不显示
解决方案: NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedStringalloc] init]; NSMutableAttributedString *atr = [[NSMutableAttributedStringalloc]initWith原创 2017-06-12 14:29:34 · 1684 阅读 · 0 评论 -
iOS部分页面横竖屏解决方案
系统支持横屏顺序默认读取plist里面设置的方向(优先级最高)等同于Xcode Geneal设置里面勾选application window设置的级别次之然后是UINavigationcontroller/UITabbarController级别最低的是viewcontroller(注意Xcode Geneal设置里面没有勾选的方向viewcontroller强制旋转到该方向会原创 2017-06-29 14:33:37 · 1108 阅读 · 0 评论 -
[iOS]自动生成ipa脚本
项目迭代完工进入测试阶段:测试A:帮我打个包,谢谢。我:打包中......测试B:帮我打个包,谢谢。我:打包中......测试C:帮我打个包,谢谢。我:打包中...............测试A:发现一个bug,改好给我打个包,谢谢。我:(´⌒`。) 打包中......!测试B:也帮我打一个,谢谢。测试C:还有我!我:((유∀유|||))打包原创 2016-09-23 15:11:16 · 721 阅读 · 0 评论 -
安装cocoapods及使用详解(持续更新)
1.设置ruby的软件源$gem sources -l #(查看当前ruby的源)$gem sources --remove https://rubygems.org/ #(移除当前ruby的源原创 2016-08-11 14:21:43 · 4113 阅读 · 0 评论 -
设置UIImageView的contentMode属性UIViewContentModeScaleAspectFill导致push和pop显示异常
1.问题描述: self.bgView = [[UIImageViewalloc]init]; self.bgView.image = [UIImageimageNamed:@""]; self.bgView.contentMode = UIViewContentModeScaleAspectFill; [self.viewa原创 2017-03-28 14:15:45 · 2764 阅读 · 0 评论 -
iOS内购审核被拒 错误状态码21007
被拒原因:在我们公司的测试服务器中,我们会连接苹果的测试服务器(https://sandbox.itunes.apple.com/verifyReceipt)验证。在我们部署在线上的正式服务器中,我们会连接苹果的正式服务器(https://buy.itunes.apple.com/verifyReceipt )验证。我们提交给苹果审核的是正式版,我们以为苹果审核时,我们应该连接苹果原创 2017-03-09 09:21:25 · 13598 阅读 · 0 评论 -
控制UIViewController的生命周期
1.问题描述利用childViewControllers属性和UICollectionView实现pageController的模块功能,发现当pop或者dismiss回到parentViewController时,系统会为所有已加载的childViewController调用viewWillAppear。产品功能要求在UIViewController出现的时候刷新列表,这样会导致所有的chi原创 2017-04-17 11:35:56 · 629 阅读 · 0 评论 -
键盘显示的情况下,按home进入后台,再点击app图标切换回前台时发生crash
一、问题描述:键盘显示的情况下,按home进入后台,再点击app图标切换回前台时发生crash,控制台没有任何打印信息,只是停在了main入口,一脸懵圈。如何找到crash原因?解决方法:如果打开了ARC或垃圾回收模式,在程序中发消息给已经释放的对象,将会引起程序崩溃。这时定位崩溃原因将非常困难,因为出问题的对象已经重新分配了。可以通过启动僵尸对象(Zombie Obj原创 2017-05-24 09:26:05 · 1955 阅读 · 0 评论 -
iap支付总结(一次性消费购买)
一、支付流程 : 1.向服务器发起请求获取订单号 2.向苹果服务器获取对应的产品信息 3.发起购买请求(通过设置applicationUsername使订单号与这次交易绑定) 4.处理SKPaymentTransactionObserver回调方法,交易完成向服务器发送购买凭据二、部分代码实现:#pragm原创 2017-05-18 11:21:00 · 2707 阅读 · 0 评论 -
如果有两位小数不为0则保留两位小数,如果有一位小数不为0则保留一位小数,否则保留整数
+ (NSString*)stringFromNumber:(NSInteger)number{ if (number10000) { return [NSStringstringWithFormat:@"%ld",number]; }else{ NSString * numberStr = [selfdecima原创 2017-05-22 09:44:59 · 2538 阅读 · 0 评论 -
iOS使用UIImagePickerController在相册中选择破损图crash
复现crash场景选取破损图点击选取按钮crash,控制台输出:*** setObjectForKey: object cannot be nil (key: croppedImage)代理方法:- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIIma原创 2017-06-16 15:41:33 · 753 阅读 · 0 评论 -
iOS crash报告符号化,.ips文件分析
项目中一部分测试是外包的,测试人员发现了一个偶现的bug,并把.ips文件提供给我们。下面开始解析crash文件1.在桌面新建一个文件夹,名字叫crash2.将.ips文件更名为.crash文件并放到crash文件夹中3.前往文件夹路径 /应用程序/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versio原创 2017-06-16 16:07:51 · 5849 阅读 · 0 评论 -
iOS客户端React-Native增量更新实践
市场上现存方案:微软的 CodePush 以及React-Native中文网的Pushy,大家可根据公司实际情况酌情选择。 处于安全性的考虑,公司禁止向第三方平台上传源码相关文件,所以要自己动手实现。增量更新主要实现流程 1.使用react-native bundle 命令打包,压缩打包文件 2.使用bsdiff生成新旧RN版本压缩文件的差异化文件patchFile 3.客户端旧RN版原创 2018-02-05 21:33:10 · 1597 阅读 · 0 评论