iOS开发总结
我会与大家在专栏中分享我在iOS项目开发中遇到的难题、解决方案和前沿技术。以及我会开源一些代码和项目。希望能和大家在交流中共同进步。
IT_WolfHong
WolfHong
展开
-
ios基本控件详解(持续更新)
UIButton//这里创建一个圆角矩形的按钮 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];// 能够定义的button类型有以下6种,// typedef enum {// UIButtonTypeCustom = 0, 自定义风格//原创 2016-11-29 10:03:21 · 3392 阅读 · 0 评论 -
UIColor+Random
import import “UIColor+Random.h”@implementation UIColor (Random) +(UIColor *)randomColorwithAlph:(NSInteger)alph{ static BOOL seed = NO; if (!seed) { seed = YES; srandom(ti原创 2015-08-31 11:17:51 · 549 阅读 · 0 评论 -
通知
import “RootViewController.h”(void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. // self.view.backgroundColor = [UIColor grayColor];//注册变名通知、原创 2015-08-31 11:29:35 · 486 阅读 · 0 评论 -
根据规则跳转到指定的界面(runtime实用篇一)
import “AppDelegate.m”- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 延时,等待所有控件加载完 dispatch_after(dispatch_time(DISPATCH_TIME_N原创 2015-08-31 11:47:39 · 660 阅读 · 0 评论 -
GCD
import “ViewController.h”//在iOS里实现多线程的技术有很多,使用起来最简单的是GCD,执行效率最高的也是GCD,是相对底层的API,都是C的函数。GCD是苹果最推荐的多线程技术,GCD的核心是往dispatch queue里添加要执行的任务,由queue管理任务的执行。- (IBAction)Serial:(UIButton *)sender { //dispa原创 2015-08-31 11:51:12 · 663 阅读 · 0 评论 -
iOS 面试大全从简单到复杂(简单篇)
1.UIWindow和UIView和 CALayer 的联系和区别?答:UIView是视图的基类,UIViewController是视图控制器的基类,UIResponder是表示一个可以在屏幕上响应触摸事件的对象;UIwindow是UIView的子类,UIWindow的主要作用:一是提供一个区域来显示UIView,二是将事件(event)的分发给UIView,一个应用基本上只有一个UIWindow.转载 2015-08-31 14:16:17 · 540 阅读 · 0 评论 -
iOS之单例模式
单例模式可能是设计模式中最简单的形式了,这一模式的意图就是使得类中的一个对象成为系统中的唯一实例。它提供了对类的对象所提供的资源的全局访问点。因此需要用一种只允许生成对象类的唯一实例的机制。下面让我们来看下单例的作用:可以保证的程序运行过程,一个类只有一个示例,而且该实例易于供外界访问从而方便地控制了实例个数,并节约系统资源。单例模式的使用场合类只能有一个实例,并且必须从一个为人数值的访问点对其转载 2015-08-31 14:21:36 · 526 阅读 · 0 评论 -
开源项目汇总
NewsReader项目使用了较多的开源项目,如:ASIHTTPRequest: http://allseeing-i.com/ASIHTTPRequest/json-framework: https://github.com/stig/json-frameworkXMPPFramework: https://github.com/robbiehanson/XMPPFramework转载 2015-09-10 17:30:07 · 933 阅读 · 0 评论 -
UICollectionView(相册大图查看)
import import “BaseViewController.h”@interface FullAlbumViewController : BaseViewControllerimport “FullAlbumViewController.h”import import “FullImageCell.h”static NSString *cellIdentifier = @”FullImage原创 2015-11-04 15:00:42 · 927 阅读 · 0 评论 -
@implementation NSString (NSStringDebug) -(void) objectForKey:(NSString*) str { assert(NO);
@implementation NSString (NSStringDebug)-(void) objectForKey:(NSString*) str { assert(NO); // 这里的assert(NO)是必须的,不允许该函数正常运行}@end将断点打在assert(NO)之前 控制台输入po str原创 2015-11-10 10:08:11 · 511 阅读 · 0 评论 -
让UITableView自动滑动(定位)到某一行cell section刷新 cell刷新
UITableView自动滑动(定位)NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:5 inSection:5];[[self tableView] scrollToRowAtIndexPath:scrollIndexPath atScrollPosition:UITableViewScrollPositi原创 2015-11-20 11:01:13 · 2214 阅读 · 0 评论 -
-[__NSCFConstantString size]: unrecognized selector sent to instance 0xce18c0
原[btn setImage:@"iconfont-liaotian" forState:UIControlStateNormal];改[btn setImage:[UIImage imageNamed:@"iconfont-liaotian" forState:UIControlStateNormal];原创 2015-12-03 14:06:49 · 2945 阅读 · 0 评论 -
The identity used to sign the executable is no longer valid.
真机测试突然报 The identity used to sign the executable is no longer valid.Please verify that your device’s clock is properly set, and that your signing certificate is not expired.提示解决方法: 然后运行原创 2015-12-05 14:40:44 · 531 阅读 · 0 评论 -
iOS appicon 图标尺寸
iPhone Portrait iOS 8-Retina HD 5.5 (1242×2208) @3x iPhone Portrait iOS 8-Retina HD 4.7 (750×1334) @2xiPhone Portrait iOS 7,8-2x (640×960) @2x iPhone Portrait iOS 7,8-Retina 4 (640×1136) @2xiPhone Po转载 2015-12-11 18:03:24 · 906 阅读 · 0 评论 -
FMDB的使用
#import <Foundation/Foundation.h>@interface APPImageManager : NSObject+ (instancetype)shareInstance:(NSString *)DBName;- (void)openDB:(NSString *)DBName;- (void)createTableName:(NSString *)tableName;-原创 2015-12-29 15:00:44 · 703 阅读 · 0 评论 -
键盘增加监听,UIButton随键盘位移
//增加监听,当键盘出现或改变时收出消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:)原创 2015-12-29 15:04:02 · 677 阅读 · 0 评论 -
自定义UIButton 图片与label的位置
@interface TopImageWithBottomLabelButton: UIButton- (CGRect)imageRectForContentRect:(CGRect)contentRect;- (CGRect)titleRectForContentRect:(CGRect)contentRect;@end@interface RightImageWithLeftLabelB原创 2015-12-29 15:14:34 · 861 阅读 · 0 评论 -
NSNull报错
@interface NSNull (JSON)@end@implementation NSNull (JSON)- (NSUInteger)length { return 0;}- (NSInteger)integerValue { return 0;};- (float)floatValue { return 0; };- (NSString *)description原创 2015-12-29 15:16:41 · 609 阅读 · 0 评论 -
popToViewController返回到指定页面
ZNWNeedsRegistrationDetailViewController *registrationDetailVC = [[ZNWNeedsRegistrationDetailViewController alloc] init]; EditPersonInFoViewController *editPersonInFoVC = [[EditPersonInFoViewCo原创 2015-12-29 15:21:20 · 1225 阅读 · 0 评论 -
在控制台里打印controller的层级
(lldb) po [UIViewController _printHierarchy]<BaseTabBarController 0x280f600>, state: appeared, view: <UILayoutContainerView 0x3b64990> | <UINavigationController 0x284dc00>, state: disappeared, view原创 2016-01-04 17:15:51 · 1655 阅读 · 0 评论 -
让Xcode的控制台支持LLDB类型的打印
在Xcode断点调试的时候, 在控制台输入 po self.view.frame 或者 po id 类型的时候就死翘翘了。打开终端输入三条命令:1. touch ~/.lldbinit2. echo display @import UIKit >> ~/.lldbinit3. echo target stop-hook add -o \"target stop-hook disable\" >>原创 2016-01-04 17:19:28 · 551 阅读 · 0 评论 -
最全的iOS面试题及答案
多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原理。实现机制。如何解决TableView卡的问题。block和代理的,通知的区别。block的用法需要注意些什么。strong,weak,retain,assign,copy nomatic 等的区别。设计模式,mvc,单利,工厂,代理等的应用场景。单利的写法。在单利中创建数组应该注意些转载 2016-02-25 23:42:00 · 1277 阅读 · 0 评论 -
info.plist文件的解读
“工程名-Info.plist”1 Localiztion native development region — CFBundleDevelopmentRegion 本地化相关,如果用户所在地没有相应的语言资源,则用这个key的value来作为默认.2 Bundle display name — CFBundleDisplayName 设置程序安装后显示的名称。应用程序名称限制在10-转载 2016-04-04 08:44:31 · 668 阅读 · 0 评论 -
Verify the Developer App certificate for your account istrusted on your device.
运行时报错-Verify the Developer App certificate for youraccountis trusted on your device. Open Settings on Mayoyi_sakura andnavigate to General -> Device Management, then select your解决方法:打开手机设置->通用原创 2016-07-04 10:19:58 · 11150 阅读 · 0 评论 -
Xcode删除Project上层group(New group from selection)
本来想在Project下New Group,结果点了New group from selection, 结果在Project上级新建了一个group,菜单中无删除项…… 解决方法:1,关闭Xcode2,备份xx.xcodeproj3,右击xx.xcodeproj, 点击“显示包内容”(Show Package Contents) 4,你可以看到一个文件xx.xcworkspace, 这里包含了原创 2016-07-04 10:44:24 · 1634 阅读 · 0 评论 -
iOS里常见的几种信息加密步骤简单总结
iOS里常见的几种信息加密方法简单总结一.MD5加密MD5加密是最常用的加密方法之一,是从一段字符串中通过相应特征生成一段32位的数字字母混合码。 MD5主要特点是 不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样(也不是绝对的,但基本是不能一样的)。 MD5算法还具有以下性质: 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容原创 2016-07-29 15:25:40 · 2440 阅读 · 1 评论 -
iOS 10推送通知开发
iOS 10有了新的通知转载 2016-08-04 10:00:26 · 1165 阅读 · 0 评论 -
iOS移动支付
iOS 移动支付之种类iOS 端的移动支付,大概包括:支付宝支付、微信支付、银联卡支付、paypal支付,现在又多出一个Apple pay支付; 如何集成这些种类的支付方式谈及如何集成这些支付方式,面对各种支付方式的SDK以及Demo写的详细的完美无缺,我还真不如还如何去写,这里我就接地气的写写,写的不好请勿喷哦☺! 支付宝支付 大致有以下步骤: 1.向支付宝申请, 与支付宝签约,获得商户P原创 2016-08-09 09:43:36 · 990 阅读 · 1 评论 -
贪吃蛇 for iOS
VC.h#import <UIKit/UIKit.h>@interface ViewController : UIViewController@endVC.m#import "ViewController.h"#import "BackGround.h"#import "UIView+setGet.h"typedef NS_ENUM(NSInteger, RefrushType) {原创 2016-08-11 09:20:39 · 686 阅读 · 0 评论 -
使用CocoaPods(一)为项目配置第三方类库
前言 在iOS项目中使用第三方类库可以说是非常常见的事,但是要正确地配置他们有时候是非常繁琐的事情,幸运的是CocoaPods是一个很好的解决方案。 什么是CocoaPods CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。 Cocoa原创 2016-08-23 13:28:09 · 1665 阅读 · 0 评论 -
Xcode 常用快捷键
更新约束(看图)://等于号command + option + =移动代码的快捷键:上下移动: command + option + (上) / 左右移动: command + ](右) / [(左)展开/隐藏 代码的快捷键:command + option + <— (隐藏)command + option + —>(展开)全局修改局部变量快捷键:command + control + e选原创 2016-08-23 13:34:01 · 696 阅读 · 0 评论 -
ios10 plist 权限
由于苹果方面的要求应用必须要设置一些权限。 所以我把需要权限都统一列举出来供大家使用。 NSPhotoLibraryUsageDescription App需要您的同意,才能访问相册 NSCameraUsageDescription App需要您的同意,才能访问相机 NSMicrophoneUsageDescription App需要您的同意,才能访问麦克风原创 2016-11-23 08:51:59 · 501 阅读 · 0 评论 -
微信公众号开发---生成带参二维码
一、场景二维码为了满足用户渠道推广分析的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。目前有2种类型的二维码,分别是临时二维码和永久二维码,前者有过期时间,最大为1800秒,但能够生成较多数量,后者无过期时间,数量较少(目前参数只支持1–100000)。两种二维码分别适用于帐号绑定、用户来源统计等场景。用户扫描带场景值二转载 2016-11-23 09:32:48 · 1942 阅读 · 1 评论 -
iOS 指纹识别
简介苹果从iPhone5S开始,具有指纹识别技术,从iOS8.0之后苹果允许第三方 App 使用 Touch ID进行身份验证。指纹识别Touch ID提供3+2共5次指纹识别机会(3次识别失败后,弹出的指纹验证框会消失,同时会报错code = -1,然后点击指纹会再次弹框可验证两次),如果五次指纹识别全部错误,就需要手动输入数字密码,数字密码可以输入6次,如果6次输入的数字密码都错误,系统会停止验转载 2016-11-23 09:59:29 · 677 阅读 · 0 评论 -
iOS申请邓白氏总结
如果你是要为了申请企业账号而注册得邓白氏代码,那么你需要把上面所有填写得信息都要记住,因为在申请企业账号的时候需要用到这些,并且要和申请邓白氏所填写得信息相吻合,不然你得企业账号审核不会成功。邓白氏编码注册连接,免费的:https://developer.apple.com/ios/enroll/dunsLookupForm.action 上图中,出现了红色的字体,因为该页面的 所有信息都需要转载 2016-11-23 10:18:03 · 479 阅读 · 0 评论 -
CornerStone的使用
俗话说:“工欲善其事必先利其器”;对于我们程序员来说,不管你是大神,还是小鱼小虾,进入公司之后,都用过源码管理工具,不然你就不是一个合格的程序员,现在各个公司用于源码管理工具通常有下面两种: 第一种,Git:使用git的公司应该是最多的。 第二种,svn:目前我们公司使用的就是svn。 当然,他们两者的区别,在这里就不做解释了,一般选择用什么源码管理工具,一般会是整个项目的负责人来选择。原创 2016-11-23 10:25:42 · 1105 阅读 · 0 评论 -
iOS中使用RSA加密
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于解密. 首先需要先生成这些文件,然后再将文件导入工程使用,不多说,开始做! 一、使用openssl生成所需秘钥文件 生成环境是在mac系统下,使用openssl进行生成,首先打开终端,按下面这些步骤原创 2016-11-23 10:40:47 · 2958 阅读 · 1 评论 -
iOS自定义相机
最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究了一下相机的自定义。 相机属于系统硬件,这就需要我们来手动调用iPhone的相机硬件,分为以下步骤: 1、首先声明以下对象#import <AVFoundation/AVFoundation.h>//捕获设备,通常是前置摄像头,后置摄像头,麦克风(音频输入)@property (nonat转载 2016-11-23 10:44:58 · 631 阅读 · 0 评论