iOS开发
文章平均质量分 71
bo.cui
这个作者很懒,什么都没留下…
展开
-
在XCode中使用SwiftGen管理你的图片、配色、多语言文件等
SwiftGen是一个工具,可以为您的项目资源(如图像、本地化字符串等)自动生成Swift代码,然后你就可以像使用一个Class类一样访问你的资源了。而且添加或更新资源后,SwiftGen也会自动更新用于访问资源的Class类。对于管理图片、配色、多语言文件等十分方便。原创 2024-03-06 01:33:24 · 1185 阅读 · 0 评论 -
WKWebView访问时不携带Cookie的解决方案
使用WKWebView框架开发h5的APP时,访问h5页面不携带Cookie的解决方法...原创 2024-01-08 02:29:24 · 959 阅读 · 0 评论 -
使用Xib(Storyboard)布局UIScrollView - 以及解决has ambiguous scrollable content width/height问题
概要在xib中自动布局UIScrollView一直都是个挺麻烦的事。尤其从Xcode11开始,苹果对UIScrollView引入了“Content Layout Guides”,这导致默认情况下使用之前的方式布局会遇到“has ambiguous scrollable content width/height”错误。下面分别介绍一下如何关闭“Content Layout Guides”并继续使用老版本的布局方法,以及如何使用新方法进行布局。解决has ambiguous scrollable c原创 2021-08-24 20:43:34 · 3574 阅读 · 2 评论 -
包含UIWebView不能提交到商店的问题
1:首先搜索自己的项目,然后全删掉或者改用WKWebView;2:第三方尤其是pod包含了UIWebView的,从第三方里删除或改用WKWebView,例如一个很常见的库AFNetworking中就包含了UIWebView的扩展:-首先删除掉AFNetworking中的两个扩展文件(UIWebView+AFNetworking.h/UIWebView+AFNetworking.m);-然后注释掉UIKit+AFNetworking.h文件中的#import "UIWebView+AFNetwor原创 2021-07-13 18:35:34 · 464 阅读 · 0 评论 -
iOS使用Reveal分析他人app界面
不确定界面架构是否合理?最简单的办法就是看看别人是怎么做的,比如QQ。方法也比较简单,就是一个工具:Reveal。下面说说怎么用。测试环境:mac osx 10.10 / xcode 6.3 / ios7.1.2 / Reveal 1.5.1安装: 首先前往 http://revealapp.com/download/ 去下载文件,解压直接运行,就可以看到界面了。这里强烈建议把下载的Reve原创 2015-05-13 16:23:20 · 31146 阅读 · 3 评论 -
(iOS)判断GPS坐标是否在中国
由于火星坐标问题,所以需要判断一下经纬度是否在中国。基本思路是:把整个行政区域划分为几个小的矩形,然后再排除掉一些矩形区域。只要一个点在限定的区域内,并且不在排除的区域内,则判定成功,否则失败。下图中蓝色区域为限定区域,红色区域为排除区域。这种快速判定的方法是从Nokia map中挖掘出来的。优点:快速,相对准确;缺点:边界误差较大源码下载:https://github.com/zcsoft/ZC原创 2015-05-13 12:51:02 · 10255 阅读 · 0 评论 -
mac下抓取分析iphone数据包 - 使用Wireshark
mac系统版本:mac 10.10 Yosemitexcode版本:6.3.1在追踪bug或者分析借鉴其他公司的app通讯思路时,抓包这件事是非常有必要的。下面说说Wireshark怎么截获iphone的数据包。安装wiresharkwireshark是依赖x11的,所以首先确认安装了x11,mac自带,可以打开升级一下。 前往-实用工具-x11,打开后点击菜单栏上的x11,检查更新 即可。中间提原创 2015-05-08 16:05:41 · 11686 阅读 · 1 评论 -
Xcode6编译SDWebImage报错原因分析(SDWebImageDownloaderOperation.m错误)
之前写了一片关于编译SDWebImage报错解决方法的文章:http://blog.csdn.net/cuibo1123/article/details/39434015结果很多人问这个问题的原因,那就在这里给大家说一说好了,分析思路一并送上(不过我还是建议大家自己动手去分析)。首先,如果新建工程,按照SDWebImage的方式声明输出口并引用:@interface ZCTest () @原创 2014-11-29 04:19:05 · 3852 阅读 · 3 评论 -
Xcode6编译SDWebImage报错解决方法(SDWebImageDownloaderOperation.m错误)
报错:Use of undeclared identifier '_executing' / '_finished';解决方法:在SDWebImageDownloaderOperation类的实现中(@implementation里)添加:@synthesize executing = _executing ;@synthesize finished = _finished;即可。原创 2014-09-20 19:09:17 · 23221 阅读 · 19 评论 -
iphone分辨率终极指南(含iphone6/6+)
点:在刚开始,所有的图形位置都由坐标点指定。点是抽象的单位,它们只在逻辑坐标系上有意义。像素渲染:基于点的图像被渲染为像素,这个过程被称为栅格化。点坐标和比例系数相乘得到像素坐标。更高的比例因子会显示更多细节。物理像素:设备屏幕所能呈现的分辨率可能要比上一步骤底。要显示之前的图像,必须以较低的像素分辨率重新采样(调整大小)。物理设备:最后,计算的像素被显示在物理屏幕上,PPI数决定一英寸装入多少像素,从而把较大的物理像素显示到真实屏幕上。翻译 2014-09-20 00:04:25 · 19379 阅读 · 4 评论 -
新ITC提交APP常见问题与解决方法(Icon Alpha,Build version,AppIcon120x120)(2014-11-17)
1)ICON无法上传,提示图片透明(有Alpha通道) 苹果现在不接受png里的Alpha了。简单处理:用自带的预览打开,导出时不勾选Alpha,仍保存为png格式,上传可行!但图标中透明的部分,会变成白色。2)Build版本 submit时出现如下错误:出现这个问题通常是因为之前上传过app但是没使用,第二次上传build版本冲突。修改软件的build版本大于之前版本即可(工程-属性-Ge原创 2014-11-17 06:40:09 · 6101 阅读 · 0 评论 -
Admob(6.12.x)符号未定义错误的解决方法(IOS)
在升级Admob的SDK版本到6.12.x时,按照官方文档操作(https://developers.google.com/mobile-ads-sdk/docs/#ios),添加如下framework:StoreKitAudioToolboxMessageUISystemConfigurationCoreGraphicsAdSupport之后将-ObjC添加至应用目标构建设置中的Oth原创 2014-11-17 02:25:10 · 3390 阅读 · 0 评论 -
组件接口(API)设计指南-目录
组件接口(API)设计指南-目录; 组件接口(API)设计指南[1]-要考虑的问题; 组件接口(API)设计指南[2]-类接口(class interface); 组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols); 组件接口(API)设计指南[4]-通知(Notifications); 组件接口(API)设计指南[5]-最后的思考;翻译 2014-10-08 15:54:04 · 5858 阅读 · 0 评论 -
组件接口(API)设计指南[4]-通知(Notifications)
规则23: 通知跟随委托方法 在委托方法(适当的,不是数据源方法)和通知之间存在着天生的对应关系。你可以在你代码的任何地方使用他们,而达到完全相同的目的。 如果你有一个关于事件发生的委托,你通常也应该提供一个同样目的的通知。做到即使把委托方法全部移除,使用者也依然可以通过通知来实现相应功能。 委托方法的参数应该与通知的‘userInfo(通知附加值)’内容匹配,通知与您在委托中直接传递参数有一个明显的区别,它通常需要将信息装载到字典(NSDictionary)中。 委托方法:翻译 2014-10-10 15:23:39 · 2573 阅读 · 0 评论 -
使用NSCondition实现多线程同步
iOS中实现多线程技术有很多方法。这里说说使用NSCondition实现多线程同步的问题,也就是解决生产者消费者问题(如收发同步等等)。问题流程如下: 消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品; 生产者制造产品,首先也要取得锁,然后生产,再发signal,这样可唤醒wait的消费者。这里需要注意wait和signal的问题: 1: 其实原创 2014-11-12 13:03:54 · 7225 阅读 · 0 评论 -
UITabBar和UINavigation组合使用与自定义样式(iOS)
UITabBarController和UINavigationController组合使用与自定义样式源代码github地址:https://github.com/zcsoft/ZCTabNav环境版本:mac 10.10 / ios7+ / xcode 6.3大部分APP的界面框架都需要UITabBarController和UINavigationController组合使用,自己的很多项目也都原创 2015-05-11 16:15:17 · 5326 阅读 · 0 评论 -
iOS人脸识别(检测)
iOS的CoreImage已经内建了人脸检测的接口,检测准确率一般,尤其是侧脸,基本上就检测不到。不过跟其他同类产品比较,也还算是不相上下吧。用起来很简单: CIImage* image = [CIImage imageWithCGImage:aImage.CGImage]; NSDictionary *opts = [NSDictionary dictionaryWi原创 2015-06-01 14:35:09 · 15192 阅读 · 7 评论 -
UITableViewCell高亮(按下)时,子视图背景色变透明的解决方法
UITableViewCell highlighted subviews backgroundColor自定义的UITableViewCell,在上面添加一个UIView(这里是UILabel),设置UILabel背景色。但是当cell处于按下状态时,UILabel背景色就会消失。如图(选中行的(2)背景色消失):其实这个问题的原因可以在文档里找到,(大意)当cell处于highlighted/s原创 2016-11-16 23:09:51 · 5171 阅读 · 2 评论 -
快速理解Runtime of Objective-C
无论面试、论坛、群组...只要是跟ios开发有关的地方,到处都有runtime这个词。各种文章描述的神乎其技,就差把量子物理或者弦理论的知识也用上了。这么diao的东西到底是什么那?我们用最简单的方式来介绍一下,保证只要是猿类,就一定能听懂。原创 2016-03-28 11:11:45 · 1983 阅读 · 1 评论 -
ios业务模块间互相跳转的解耦方案
一个app通常由许多个模块组成,所有模块之间免不了会相互调用,例如一个读书管理软件,可能会有书架、用户信息、图书详情等等模块,从用户信息-我读的书中,可以打开图书详情。而在图书详情-所在书架,又可以打开书架。一般这种需求我们可能会这实现:/*用户信息模块*/#import "UserViewController.h"#import "BookDetailViewController.h"@implementation UserViewController//跳转到图书详情+ (void)go原创 2016-03-30 17:58:06 · 13619 阅读 · 5 评论 -
App集成ApplePay的一些资料整理
首先apple pay不是苹果自己的事,所以,除了要看苹果的资料,把代码写进ios客户端app,还需要看银联的接口,把钱弄到你的卡里。而且发现银联的网站上居然有比苹果更易懂的文档,但是银联资料下载下来都是rar,我的mac打不开也是醉了。当然,除了银联你也可以选择连连首信易宝。我觉得看完下面这些连接就差不多能集成了:原创 2016-02-19 18:03:26 · 8003 阅读 · 0 评论 -
iOS架构模式-揭秘MVC,MVP,MVVM和VIPER
iOS架构模式揭秘MVC,MVP,MVVM和VIPER在IOS中使用MVC感觉很奇怪?对切换到MVVM存在疑虑?听过VIPER,但是又不确定是否值得尝试?继续阅读,你会找到上面问题的答案,如果没有你想要的答案,你可以去评论里骂我。你将要开始学习一些有关ios架构模式的知识。我们将会简单的回顾一些当前受欢迎的架构模式,并在原理上对他们进行比较,然后做一些小例子来实践。如果你需要了解更多详细信息,我也翻译 2016-02-17 17:35:19 · 5607 阅读 · 0 评论 -
iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回
iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),关于:发起支付之后只显示一个确定按钮,没有任何错误提示,断点返回的Url Schemes,也只有一个ret=-2,官方文档解释为: “无需处理。发生场景:用户不支付了,点击取消,返回APP。”遇到这个问题,基本就是发起请求的参数传错了。原创 2016-03-03 18:36:06 · 12099 阅读 · 0 评论 -
ios9下照片浏览模糊的解决方法(ALAsset.thumbnail模糊)
在ios9下,使用ALAsset方式实现的照片浏览器都存在照片模糊的问题,但是目前能找到的大部分开源的照片浏览器都是使用这个框架编写的。 我们通常用以下方法获得照片缩略图:self.image = [UIImage imageWithCGImage:self.asset.thumbnail];调试发现,在ios8上,照片尺寸是150*150,而在ios9上,这个尺寸变成了75*75。查看ap原创 2015-10-12 18:59:13 · 8596 阅读 · 3 评论 -
UITableView判断reloadData结束(iOS)
如果在reloadDate后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。reloadDate并不会等待tableview更新结束后才返回,而是立即返回,然后去计算表高度,获取cell等。如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。ap原创 2015-09-18 23:46:45 · 23047 阅读 · 8 评论 -
UINavigationController返回手势失效问题
从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是,如果自定了back button或者隐藏了navigationBar,该手势就失效了。这是为什么呢?原因我们知道,interactivePopGestureRecognizer从手势触发到行为发生,要经过下面的阶段:interact转载 2015-07-11 14:08:05 · 9608 阅读 · 0 评论 -
cocoapods工程路径变更后library not found解决方案
在使用cocoapods作为第三方库管理工程时,如果修改工程路径(重命名或剪切走),再次编译这个工程,会提示如下错误: ld: library not found for -lPods-**并且会在原来的路径下重新创建一个build目录。提示错误的原因大概就是项目去原始目录下寻找library了。尝试了清理工程,设置路径等等均未解决。最后把新路径(移动后的项目路径)下的build目录删除掉,在原创 2015-06-27 18:30:00 · 8738 阅读 · 0 评论 -
CocoaPods停在Analyzing dependencies的解决方案
现在很多开源项目都适用了cocoapod,这给集成第三方库带来了很多便利,在也不用去工程里设置哪些参数、依赖了。不过在执行pod update或者pod install时,经常会卡在Analyzing dependencies不动。这步其实是cocoapods在将他的信息下载到~/cocoapods目录下,可以进入这个目录后通过du -sh * 来查看下载进度,其中的内容就是托管在https://原创 2015-06-25 11:44:40 · 11497 阅读 · 2 评论 -
组件接口(API)设计指南[5]-最后的思考
*返回目录阅读其他章节: http://blog.csdn.net/cuibo1123/article/details/39894477最后的思考 我通过困难的学习以及多年的失误,写了这片篇关于创建组件和api规则的文章。我在试着练习我的写作能力,虽然不可避免地会出现很多我没有提及的例子。 不是所有的规则都适用于所有情况,也没有一条规则在任何情况下适用。这里只是尽可能多的给你一些灵感,翻译 2014-10-10 15:27:21 · 2580 阅读 · 0 评论 -
组件接口(API)设计指南[3]-委托(delegate)和数据源协议(data-source protocols)
我们几乎可以在任何组件中利用经典的委托(delegate)和数据源协议(data-source protocols)。如果你想显示一些数据,那么数据源协议可能就非常适合你,例如你有以下问题: 1:我有很多事物(有很多条数据)。 2:设置每个事物(数据)X的成员Y的值。 同样,在几乎所有情况下,一个经典的委托(delegate)协议形式如下: 1:这件事应当做吗(一个动作发生前,通常调用一个带有返回值的委托方法,决定动作是否执行)? 2:翻译 2014-10-09 14:29:17 · 3741 阅读 · 0 评论 -
组件接口(API)设计指南[1]-要考虑的问题
开发人员与组件的显式交互主要有四种: 1. 类接口(classinterface),类公开的属性和方法。 2.委托协议(delegateprotocol),在相关的地方。 3.数据源协议(data-sourceprotocol),酌情。 4.规定的通知(notifications)。 我们设计的每一种交互,都应该需要用户刻意的去使用,不要做隐式的交互调用。另外,你应当思考两个关键问题: ○ 什么是控制?控制会影响界面和类方法。它影响的界面是显而易见的,比如一个按钮,或者一个滑块。而翻译 2014-10-08 15:58:41 · 4741 阅读 · 0 评论 -
iOS开发-从学习到产品/推广 全面总结
从学习到产品/推广的全面总结和经验-iOS个人开发者一周年 我熬夜写了这篇文章,天亮了,才发现外面的雪还在飘着。所有从学习到开发在到上线推广过程中遇到的问题,都写了进去。我想这片文章也许能帮助你开始新的征程。 留下我的新浪微博@lofocus,欢迎与我线上沟通。 下面穿插一小段广告,作为我辛勤劳动的回报,可以跳过,希望各位不要介意,也希望你能坚持看原创 2012-12-04 14:20:13 · 3630 阅读 · 6 评论 -
ios5新特性:自动引用计数(ARC)详解
一篇详细描述了ARC特性和使用方法、注意事项的文章。写的非常不错,通俗易懂,语言幽默。。。 “启用ARC,编译器就会在你程序的正确位置插入retain, release 和 autorelease。你不用有任何担心,编译器会帮你完成。我觉得这真是太棒了。事实上,使用ARC就是这么简单,你可以现在停止阅读本教程。 ;-) ”如能访问,请阅读原翻译 2012-04-24 03:13:29 · 3167 阅读 · 0 评论 -
iOS5分享 UITableView全新特性
看了WWDC视频,分享一下其中UITableView部分iOS5的SDK中,UITableView也算是有相当多的新特性了,给大家分享一下,具体有兴趣自己看视频或者文档1)动态调整Cell高度:有时候自定义Cell的高度每一行可能是不一样的,现在支持自动调整了2)动态插入/删除/修改行的动画支持自动模式(根据是顶部/底部/中间选择合适的动画),行动画新增一个UITableV转载 2012-04-26 02:41:11 · 1871 阅读 · 0 评论 -
cocos2d在iOS5sdk编译时警告的解决方法
由于ios5禁用了uniqueIdentifier方法,所以,在iOS5下编译cocos2d时会产生两处警告。解决方法如下:通过调用CFFUUIDCreate函数来生成机器唯一标识符,但每次调用以下函数返回的字符串都不一样,所以第一次调用后需把该字符串存储起来。- (NSString *) uniqueString{CFUUIDR原创 2012-05-11 19:24:07 · 1876 阅读 · 0 评论 -
多线程与托管以及堆栈共同作用造成的内存问题
《原创作品,转载请注明出处》花费三个小时,终于解决了一个特别隐蔽的内存问题。特此分享。希望各位不要在犯这类毛病~~真的会死人。高手全当娱乐新闻,只望和我一样水平有限的同仁不要犯相同的错误。问题代码及讲解如下。原始问题代码(经过简化处理):环境描述:mac, xcode4.2,iOS5(iphone4s),cocos2d工程,obj原创 2012-05-26 01:27:31 · 1489 阅读 · 0 评论 -
ios中限制UITextView的行数
//协议://原理:UITextView的内容视图会根据文本行数自动变化,计算UITextView内容的高度,当高度大于一定值时(字体高度乘以行数),则删除新输入的行。//限制UITextView的行数,- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range原创 2012-10-31 21:33:17 · 19350 阅读 · 3 评论 -
详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!2012-6-25日更新iap恢复
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/550.html//——2012-6-25日更新iap恢复看到很多童鞋说让Himi讲解如何恢复iap产品,其实博文已经给出了。这里再详细说下:首先向AppStore请求恢复交易:1[[转载 2012-11-20 23:28:54 · 3957 阅读 · 0 评论 -
IOS基本界面元素window(窗口)\视图(view)介绍及生命周期和加载过程等
IOS基本界面元素: 要在屏幕上显示内容首先要创建一个窗口承载内容,要创建一个窗口,需要一个边框(frame),含有边框信息的底层 结构就CGRect。每个能够在屏幕上显示自己的对象都有一个边框,定义了他的显示区域,不过许多高层的视图类会自动计算这一信息。其他的那些类则在视图初始化时通过一个initWithFrame的初始化方法来设置。再来认识一个类:UIScreen。UIS原创 2012-04-24 03:07:06 · 5913 阅读 · 0 评论 -
iOS与cocos2d乱七八糟的注意事项
1:NSDictionary是不能用for in遍历的,可以用NSEnumerator。2:添加节点([CCNode addChild])会增加孩子节点的引用计数,删除节点([CCNode removeChild: cleanup:])如果cleanup参数为YES,则会减少引用计数。3:父节点被砍掉,子节点也都随着掉下来了。随后的某个时间,他们会被从内存中原创 2012-06-08 05:07:43 · 1526 阅读 · 1 评论