自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵不懂的博客

一个用努力追赶天赋的菜鸟

  • 博客(44)
  • 收藏
  • 关注

原创 TabBarItem设置图片超出tabbar范围

苹果定义TabBarItem最大接受的是60*60的图片,如果你设置的图片超出或者偏大了。那么就是了能你用了@*2.png或者@*3.png的图片了。

2016-08-30 18:54:16 2355

原创 用appDelegate的全局变量

全局变量 AppDelegate可以在整个应用程序中调用,在其他页面中可以使用代码段获取AppDelegate的全局变量:AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate]; 因此可以在AppDelegate.h中定义需要全局使用的变量。

2016-08-30 17:55:00 617

原创 自定义tabBar的使用

首先,新建一个自定义的tabbar 继承UITabBar#import "ZGTabBar.h"@interface ZGTabBar()@property (nonatomic, weak) UIButton *plusBtn;@end@implementation ZGTabBar- (id)initWithFrame:(CGRect)frame{ self = [super in

2016-08-30 17:50:32 673

原创 栈的应用------后缀(逆波兰)表示法

我们将“9+(3-1)3+10/2”变为“9 3 1 - 3 + 1 0 2 / +”的转换称为,中缀表达式向后缀表达式的转换转换规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于栈顶符号(乘除优于加减)则栈顶元素依次出栈并输出,并将当前符号进栈到最终输出后缀表达式为止计算规则:从左到右遍历表达式的每个

2016-08-30 09:55:28 368

原创 裴波那契数列与递归

裴波那契数列就是一个序列,这个数列有个十分明显的特点,那是:前面相邻两项之和,构成了后一项,例如:1,1,2,3,5,8,13。我们用迭代的办法如何实现这个数列void Fbi(int n){ if(n == 0) printf("please input n > 0\n"); if(n == 1) printf("1\n"); else i

2016-08-30 09:22:42 2457

原创 栈与队列

栈的定义:栈是限定仅在表尾进行插入和删除操作的线性表我们把允许插入和删除的一端称为栈顶(TOP),另一端称为栈底(Bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表,简称LIFO结构栈的插入操作,叫做近栈,也称为压栈、入栈 栈的删除操作,叫做出栈,也有的叫做弹栈struct SA

2016-08-28 20:54:33 406

原创 链表------创建删除增加遍历

LINKED LIST创建链表#include <stdio.h>#include<stdlib.h>#include<time.h>struct ListNode{ int data; ListNode *next;};void CreateListHead(ListNode **head, int n){ ListNode *p; ListNode *q

2016-08-28 16:16:23 353

原创 算法时间复杂度

算法的定义:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法特性输入输出有穷性确定性可行性算法设计要求正确性可读性健壮性时间效率高和存储量低时间效率的度量方法事后统计方法:这种方法主要通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高地。事前分析估算方法:在计算机程序编制前

2016-08-28 11:05:15 513

原创 数据结构------基本概念

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录数据项:一个数据元素可以由若干个数据项组成。 数据项是数据不可分割的最小单位数据对象:是性质相同的数据元素的集合,是数据的子集。不同数据元素之间是不独立的,而是存在特定的关系,我们将这些关系称为结构。 数据结构

2016-08-28 10:10:35 468

原创 ios清除缓存的两种有效方法

利用第三方框架SDWebImage获知缓存大小 [SDImageCache SharedImageCache].getsize清除缓存 [[SDImageCache SharedImageCache] clearDisk]利用文件管理创建文件管理者 [NSFileManager defaultManager] 获取路径 [mgr attributesOfItemAtPath:cach

2016-08-26 19:36:55 1685

原创 数据库存储对象数据注意点

注意点:字典加入到数据库中,拿出来的时候是字符串,所以在存储的时候,要将字典转为Data数据库进入这里介绍一下用NSKeyedArchiever打包。存入数据库NSData *data = [NSKeyedArchiver archiverDataWithRootObject:(NSObject *)];[self.db executeUpdateWithFormat:@"sql---%@", d

2016-08-26 16:34:00 2273

转载 正则表达式在iOS中的运用

一、什么是正则表达式  正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。 二、正则表达式的语法  看一个过滤纯数字的例子 (BOOL)validateNumber:(NSString *) textString { NSString*

2016-08-26 16:01:40 423

原创 性能测试--性能分析--内存分析

静态分析检测代码是否有潜在的内存泄漏编译器觉得不太合适的代码 使用工具:Analyze动态分析检测程序在运行过程中的内存变化 使用工具:ProfileAllocations:能看清楚app的内存分配情况看清楚app在何时产生了内存泄漏内存泄漏:该释放的对象没有被释放。 内存溢出:内存不够用

2016-08-26 14:27:37 1487

原创 ios数据库sqlite3第三方框架FMDB

ios的几种数据存储方式: 1. Plist(NSArray/NSDictionary) 2. Preference(偏好设置/NSUserDefaults) 3. NSCodeing(NSKeyedArchiver/NSKeyedUnarchiver) 4. 数据库ios自带有sqlite3轻量级的数据库 由于它使用的是C语言的api,所以这里介绍一下第三方框架FMDB要添加libsql

2016-08-24 13:16:48 257

原创 sql语句的表的连接

--商品goods(商品号goodsId,商品名goodsName,--单价unitprice,商品类别category,供应商provider)--客户customer(客户号customerId,姓名name,住址address,电邮email--性别sex,身份证cardId)--购买purchase(客户号customerId,商品号goodsId,购买数量nums)--请用SQL

2016-08-24 07:56:34 553

原创 sql语句的查询语句基本大全

--创建dept表create table dept(deptno int primary key, dname nvarchar(30), loc nvarchar(30))insert into dept (deptno, dname, loc) values (10, 'ACCOUNTING', 'NEW YORK');insert into dept (deptno, dname

2016-08-24 07:53:27 606

原创 sql语句的基本数据类型以及增删改

--表名规范案例--表名以字母和_开头--不要超过128个字符--不要以关键字做表名--只能使用如下字符 A-Z,a-z,0-9,#,$,_ --create database Test--数据类型--字符类型--char 定长,最大8000字符,(非unicode编码)//unicode:用两个字节表示一个字符(可以是英文字母,可以是汉子)->对汉子支持比较ok--

2016-08-24 07:49:55 337

原创 ios二维码初识

二维码的生成从ios7开始集成了二维码的生成和读取功能生成二维码的步骤导入CoreImage框架通过滤镜CIFilter生成二维码二维码的内容(传统的条形码只能放数字)纯文本名片URL如何生成二维码#import "ViewController.h"#import <CoreImage/CoreImage.h>@interface ViewController ()@propert

2016-08-23 23:59:01 485

原创 ios静态库.a文件打包

什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现比如SDWebImage、AFNetworking闭源库不开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib和 .framework静态库和动态库在使用上

2016-08-23 22:57:53 369

转载 集成通讯录(第三方框架RHAddressBook)

官方地址:https://github.com/heardrwt/RHAddressBook1.安装配置:http://rheard.com/blog/using-static-iOS-libraries/主要步骤http://rheard.com/skitch/UsingStaticLibraries1-20121104-223027.pnghttp://rheard.com/skitch/Usi

2016-08-23 20:03:16 845

原创 ios通讯录------AddressBookUI

直接上代码#import "ViewController.h"#import <AddressBookUI/AddressBookUI.h>@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>@end@implementation ViewController- (void)touchesBegan:(NS

2016-08-23 19:49:42 325

原创 ios通讯录------AddressBook基本使用

ios中如果要用到通讯录,系统提供了两个框架 AddressBookUI.framework - 提供了联系人列表界面、联系人详情界面、添加联系人界面等 - 一般用于选择联系人 AddressBook.framework - 纯C语言的API,仅仅是获得联系人数据 - 没有提供UI界面展示,需要自己搭建联系人展示界面 - 里面的数据类型大部分基于Core Foundation框架,使用

2016-08-23 19:23:48 401

原创 ios------本地通知

什么是本地推送通知?顾名思义,就是不需要联网就能发出的推送通知本地推送通知的使用场景定时提醒用户完成一些任务如何发送本地通知 直接上代码/*@property(nonatomic,copy) NSDate *fireDate; 指定通知发送的时间@property(nonatomic,copy) NSTimeZone *timeZone; 指定发送通知的时区@property(nonatom

2016-08-23 17:25:03 223

原创 IOS------远程推送

推送通知呈现的效果在屏幕顶部显示一块横幅(显示具体内容)在屏幕中间弹出一个UIAlertView(显示具体内容)在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)更新app图标的数字(说明新内容的数量)播放音效(提醒作用)推送通知的呈现效果设置显示横幅还是UIAlertView,取决于用户的设置用户也可以决定是否要开启以下4个功能: 显示App图标数字播放音效锁屏显示显示在“

2016-08-23 14:45:46 1013

原创 自定义Audio工具类

播放/销毁音效 播放/暂停/停止音乐#import "ZGAudioTool.h"#import <AVFoundation/AVFoundation.h>@implementation ZGAudioToolstatic NSMutableDictionary *_soundIDs;static NSMutableDictionary *_players;+ (NSMutableDiction

2016-08-22 20:04:38 275

原创 UIImage+绘画圆形头像

#import "UIImage+ZG.h"#import <objc/message.h>@implementation UIImage (NJ)+ (instancetype)circleImageWithName:(NSString *)name borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor{

2016-08-22 19:18:24 453

原创 IOS中音效播放

音效格式 硬件解码 软件解码 *AAC YES YES ALAC YES YES HE-AAC YES iLBC YES *IMA4 YES LimeaPCM YES MP3 YES YES *CAF YES YES还有一个带阿拉伯数字的格式,我不会打,就算了,反正他支持硬件解码,不支持软

2016-08-22 16:43:21 285

原创 ios中蓝牙开发

首先,苹果提供了4个框架用于蓝牙连接 GameKit.framework(方法简单) 不过在ios7之后就过时了 MultipeerConnectivity.framework 用于ios设备之间,用于文件共享(仅限于沙盒) ExternalAccessory.framework 第三方蓝牙交互,必须经过苹果MFI认证 coreBluetoot.framework 第三方蓝牙交

2016-08-22 15:23:00 312

原创 摇一摇开发的关键性代码

摇一摇是利用了手机自带的加速器,利用一些算法,但是苹果已经集成的一个功能,只需在AppDelegate中重写下面的三个方法即可:/** * 开始摇晃就会调用 */- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{ NSLog(@"%s", __func__);}/** * 摇晃结束就会

2016-08-22 15:00:06 245

原创 cocoa-加速计程序的开发

首先,导入coreMotion.framework框架加速计数据的获取有两种方式 1. push,实时采集所有数据 2. pull,在有需要的时候,再主动去采集数据步骤(push方式)://创建运动管理者对象CMMotionManager *mgr = [CMMotionManager alloc] init];// 判断加速计是否可用if(!mgr.isAccelerometerAvail

2016-08-22 14:57:24 204

原创 苹果中距离传感器的开启

[UIDevice currentDevice].proximityMonitoringEnabled = YES;//只要开启了,就开始实时监听距离传感器了当监听到有物体靠近设备时,系统会发出通知 通知的名字是:UIDeviceProximityStateDidChangeNotification还有,监听之后,当有物体遮住距离传感器的时候,手机屏幕自动黑屏

2016-08-22 14:46:07 1586

原创 用代码完成Autolayout约束

讲道理,用Autolayout还是在storyboard里面设置的好。首先,一个约束就是一个NSLayoutConstraint对象。 创建好NSLayoutConstraint对象后,就可以用下面两个方法添加到相关的View上- (void)addConstraint:(NSLayoutConstraint *)constraint;- (void)addConstraint:(NSArray

2016-08-21 13:17:32 297

原创 系统自带分享以及友盟集成分享

社交分享各个平台自己编写(不推荐)系统自带框架 Social.framework三方框架:友盟/shareSDK(比较大)/百度社会化分享系统自带分享目前,苹果集成了新浪微博,腾讯微博,facebook,Twitter,Flickr,Vimeo等平台import <social/social.h>// 1. 服务是否可用+ (BOOL)isAvailableForServiceType:(

2016-08-19 10:24:43 572

原创 应用的相互跳转

其本质就是该应用打开一个url步骤一:要在需要打开的应用里面设置该应用的协议头:在info–>urltype里面设置二:创建需要打开的应用的url:有协议头即可,其余参数若无特设要求可有可无三:用application对象打开url [app openURL:url];####当一个应用被另外一个应用打开时回调用下面一个方法- (BOOL)application:(UIApplication *)a

2016-08-19 10:13:09 183

原创 导航

实现导航有3种方法将需要导航的位置丢给系统自带的地图APP进行导航发送网络请求到公司服务器获取导航数据然后自己手动绘制导航(一般公司是不会这样做的)利用三方SDK实现导航(百度)首先介绍系统自带的app导航,这里用到的类是:MKMapItem主要方法是:+ (void)opnenMapsWithItems:(NSArray *) launchOptions:(NSDictionary *);

2016-08-19 10:03:09 315

原创 自定义大头针简单介绍

首先用的类是:MKAnnotationView自定义一个类,需要遵守协议<MKAnnotation>可以在自定义的类里面设置你所需要的模型添加大头针的方法[self.mapView addAnnotation:annotation];3.代理方法(每次添加大头针就会调用该方法)- (MKAnnotationView *)mapView:(MKMapView *)mapView viewFor

2016-08-19 09:25:43 281

原创 对系统自带的框架MapKit的应用

本文是我学习过程中随手整理的笔记,若是有什么笔误或者理解错误的地方,欢迎指出。如果是在xib或者storyboard中创建的mapkitView,需要导入该框架以及头文件创建一个MKMapView控件@property (nonatomic, weak) MKMapView *mapView该控件有很多属性 下面列举两个常用的属性,其他的可以去它的头文件查看self.mapView.mapTy

2016-08-19 09:08:20 168

原创 IOS-corelocation

尽管有很多的第三方框架用于定位,但是都是建立在苹果的corelocation的基础之上的。刚刚学习了corelocation,在此就记录一下。 第一步:你要导入CLLocationManager头文件 第二步:拥有CLLocationManager对象(进行懒加载即可)- (CLLocationManager *)mgr{ if(!_mgr){ _mgr = [[CLL

2016-08-17 21:01:38 218

转载 解决resignFirstResponder或者endEditing无效的办法

当你想要收回弹出的键盘时却发现平时用的resignFirstResponder和endEditing都失去作用时,应该考虑一下当前的TextField是否为第一响应者,如果不是第一响应者的话,自然下面的几个方法都没有效果,解决办法有二:1、找出当前第一响应者,然后resignFirstResponder。2、先对TextField becomeFirstResponder 然后再 resignFir

2016-08-15 09:28:35 1745

原创 UITableView以及ScrollView不能相迎TouchBegin处理

重写touchBegin 方法是不行的,在UITableView/UIScrollView 解决方案 重写hitTest:withEvent: 在他们的子类中- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { static UIEvent *e = nil; if (e != nil && e == eve

2016-08-15 09:20:17 818

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除