
ios
赵不懂
懒惰是天赋最大的敌人
展开
-
写tebleView置顶快捷按钮遇到的坑
当你使用[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];这个方法让ScrollView置顶的时候,发现只能上移一点点,那么肯定是你的scrollView的contentSize出现的问题。因为scrollView是根据contentSize的大小来决定上移多少的。而tablevie...原创 2018-06-05 14:56:24 · 414 阅读 · 0 评论 -
ios二维码初识
二维码的生成从ios7开始集成了二维码的生成和读取功能生成二维码的步骤导入CoreImage框架通过滤镜CIFilter生成二维码二维码的内容(传统的条形码只能放数字)纯文本名片URL如何生成二维码#import "ViewController.h"#import <CoreImage/CoreImage.h>@interface ViewController ()@propert原创 2016-08-23 23:59:01 · 511 阅读 · 0 评论 -
ios静态库.a文件打包
什么是库?库是程序代码的集合,是共享程序代码的一种方式根据源代码的公开情况,库可以分为2种类型开源库公开源代码,能看到具体实现比如SDWebImage、AFNetworking闭源库不开源代码,是经过编译后的二进制文件,看不到具体实现主要分为:静态库、动态库静态库和动态库的存在形式静态库:.a 和 .framework动态库:.dylib和 .framework静态库和动态库在使用上原创 2016-08-23 22:57:53 · 389 阅读 · 0 评论 -
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 · 484 阅读 · 0 评论 -
集成通讯录(第三方框架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 · 870 阅读 · 0 评论 -
ios通讯录------AddressBookUI
直接上代码#import "ViewController.h"#import <AddressBookUI/AddressBookUI.h>@interface ViewController ()<ABPeoplePickerNavigationControllerDelegate>@end@implementation ViewController- (void)touchesBegan:(NS原创 2016-08-23 19:49:42 · 342 阅读 · 0 评论 -
ios通讯录------AddressBook基本使用
ios中如果要用到通讯录,系统提供了两个框架 AddressBookUI.framework - 提供了联系人列表界面、联系人详情界面、添加联系人界面等 - 一般用于选择联系人 AddressBook.framework - 纯C语言的API,仅仅是获得联系人数据 - 没有提供UI界面展示,需要自己搭建联系人展示界面 - 里面的数据类型大部分基于Core Foundation框架,使用原创 2016-08-23 19:23:48 · 445 阅读 · 0 评论 -
ios------本地通知
什么是本地推送通知?顾名思义,就是不需要联网就能发出的推送通知本地推送通知的使用场景定时提醒用户完成一些任务如何发送本地通知 直接上代码/*@property(nonatomic,copy) NSDate *fireDate; 指定通知发送的时间@property(nonatomic,copy) NSTimeZone *timeZone; 指定发送通知的时区@property(nonatom原创 2016-08-23 17:25:03 · 236 阅读 · 0 评论 -
IOS------远程推送
推送通知呈现的效果在屏幕顶部显示一块横幅(显示具体内容)在屏幕中间弹出一个UIAlertView(显示具体内容)在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)更新app图标的数字(说明新内容的数量)播放音效(提醒作用)推送通知的呈现效果设置显示横幅还是UIAlertView,取决于用户的设置用户也可以决定是否要开启以下4个功能: 显示App图标数字播放音效锁屏显示显示在“原创 2016-08-23 14:45:46 · 1055 阅读 · 0 评论 -
设置TabBar的字体颜色大小注意细节
NSMutableDictionary *textAttr = [NSMutableDictionary dictionary]; textAttr[NSForegroundColorAttributeName] = [UIColor whiteColor]; [[UITabBarItem appearance]setTitleTextAttributes:textAttr forS原创 2016-09-01 17:04:19 · 10324 阅读 · 0 评论 -
自定义Audio工具类
播放/销毁音效 播放/暂停/停止音乐#import "ZGAudioTool.h"#import <AVFoundation/AVFoundation.h>@implementation ZGAudioToolstatic NSMutableDictionary *_soundIDs;static NSMutableDictionary *_players;+ (NSMutableDiction原创 2016-08-22 20:04:38 · 306 阅读 · 0 评论 -
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 · 303 阅读 · 0 评论 -
重写NavigationControllerde的一个具体事例
首先在initialize方法里设置item的主题样式+ (void)initialize{ // 设置整个项目所有item的主题样式 UIBarButtonItem *item = [UIBarButtonItem appearance]; // 设置普通状态 // key:NS****AttributeName NSMutableDictionary *t原创 2016-09-02 15:33:32 · 277 阅读 · 0 评论 -
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 · 277 阅读 · 0 评论 -
使用iCarousel实现3D横屏滑动的效果
iCarousel介绍开源地址:https://github.com/nicklockwood/iCarouseliCarousel是一个基于scrollView的类,该类主要实现的效果类型是旋转。适用于iphone,iPad和macOS。iCarousel已经自带了很多基础效果。iCarousel作为融入项目的第三方框架,有几大优势: 1. 只需要引入iCarousel.h 和 i原创 2018-02-05 13:58:10 · 1075 阅读 · 0 评论 -
Cocoa pods的安装使用以及过程中可能会遇到问题的汇总
具体什么是Cocoapods,网上都百度的到,但是总会遇到这样活着那样的问题,经过的一个下午的调试,我在这儿将问题都整合,并且记录。首先,你的ruby版本高于可适用的版本,所以,如果版本低了,需要先升级版本,具体方法如下:1.安装ram$ curl -L get.rvm.io | bash -s stable 等待一段时间后检查是否安装成功$ source ~/.bashrc $ source原创 2016-09-28 09:13:08 · 447 阅读 · 0 评论 -
ios - 使用uicollectionView实现无限轮播
网上找到了使用scrollView实现的无限轮播的方法,需要自己写一个缓存池,不过没有找到collectionView的方法,在这边使用CollectionView实现,下面的demo本人跑起来完全没问题,如有问题的地方,希望大家指出来(里面有一些方法是自己封装的基类,会注入说明)。基本思路:在原有的数组最前面再插入一个最后的数据,在最后面插入一个最前面的数据,这有点类似于将 12345 变成 5原创 2017-03-14 16:03:10 · 4715 阅读 · 3 评论 -
Masonry使用总结
Masonry有三个最基本的使用方法/** 添加约束 */[view mas_makeConstraints:<#^(MASConstraintMaker *make)block#>]/** 更新特定的约束 */[view mas_updateConstraints:<#^(MASConstraintMaker *make)block#>]/** 重置所有的约束 */[view mas_r原创 2016-09-28 12:51:21 · 8262 阅读 · 0 评论 -
delegate,notification,KVO三种模式实现通信的优缺点
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation; 2.通知中心Notification Center; 3.键值观察key value observing,KVO 因此,那为什么我们需要这些模式以及什么时候用它以及什么时候不用它。转载 2016-09-16 10:07:28 · 1244 阅读 · 0 评论 -
IOS------Core Data的基本使用
在创建项目过程时,请选中一个标签为Use Core Data的复选框1. 实体和托管对象项目导航面板中,有一个名为Core_Data_Persistence.xcdatamodeld的文件,在这里面会有一个数据模型编辑器。它代替了使用代码创建NSObject的子类并让其遵循NSCoding和NSCopying的传统方式。而是现在数据模型编辑器中创建一些实体(entity),然后再代码中为这些实体创建原创 2016-09-25 20:41:44 · 374 阅读 · 0 评论 -
ios清除缓存的两种有效方法
利用第三方框架SDWebImage获知缓存大小 [SDImageCache SharedImageCache].getsize清除缓存 [[SDImageCache SharedImageCache] clearDisk]利用文件管理创建文件管理者 [NSFileManager defaultManager] 获取路径 [mgr attributesOfItemAtPath:cach原创 2016-08-26 19:36:55 · 1711 阅读 · 0 评论 -
数据库存储对象数据注意点
注意点:字典加入到数据库中,拿出来的时候是字符串,所以在存储的时候,要将字典转为Data数据库进入这里介绍一下用NSKeyedArchiever打包。存入数据库NSData *data = [NSKeyedArchiver archiverDataWithRootObject:(NSObject *)];[self.db executeUpdateWithFormat:@"sql---%@", d原创 2016-08-26 16:34:00 · 2302 阅读 · 0 评论 -
解决resignFirstResponder或者endEditing无效的办法
当你想要收回弹出的键盘时却发现平时用的resignFirstResponder和endEditing都失去作用时,应该考虑一下当前的TextField是否为第一响应者,如果不是第一响应者的话,自然下面的几个方法都没有效果,解决办法有二:1、找出当前第一响应者,然后resignFirstResponder。2、先对TextField becomeFirstResponder 然后再 resignFir转载 2016-08-15 09:28:35 · 1816 阅读 · 0 评论 -
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 · 848 阅读 · 0 评论 -
自定义UIPresentationController
首先设置设置需要modal的控制器的代理;并且设置他的present模式为自定义 比如:vc.modalPresentationStyle = UIModalPresentationCustom;vc.transitioningDelegate = self;实现UIViewControllerTransitioningDelegate的代理方法;可以写一个单例来包含他们。并且VC的代理设为[o原创 2016-09-17 20:13:00 · 2352 阅读 · 0 评论 -
ios中蓝牙开发
首先,苹果提供了4个框架用于蓝牙连接 GameKit.framework(方法简单) 不过在ios7之后就过时了 MultipeerConnectivity.framework 用于ios设备之间,用于文件共享(仅限于沙盒) ExternalAccessory.framework 第三方蓝牙交互,必须经过苹果MFI认证 coreBluetoot.framework 第三方蓝牙交原创 2016-08-22 15:23:00 · 341 阅读 · 0 评论 -
摇一摇开发的关键性代码
摇一摇是利用了手机自带的加速器,利用一些算法,但是苹果已经集成的一个功能,只需在AppDelegate中重写下面的三个方法即可:/** * 开始摇晃就会调用 */- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{ NSLog(@"%s", __func__);}/** * 摇晃结束就会原创 2016-08-22 15:00:06 · 272 阅读 · 0 评论 -
IOS-corelocation
尽管有很多的第三方框架用于定位,但是都是建立在苹果的corelocation的基础之上的。刚刚学习了corelocation,在此就记录一下。 第一步:你要导入CLLocationManager头文件 第二步:拥有CLLocationManager对象(进行懒加载即可)- (CLLocationManager *)mgr{ if(!_mgr){ _mgr = [[CLL原创 2016-08-17 21:01:38 · 245 阅读 · 0 评论 -
AFN解析返回的html文件和ContentType是“text/plain”类型的json文件
当使用AFN发送请求,服务器返回给你的是一个html格式的数据时 在代码中添加下面一段代码即可: [mgr.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"text/html", nil]];当返回的json数据的ContentType时“text/plain”时 则在头文件 AFURLRespon原创 2016-08-02 18:15:10 · 1604 阅读 · 0 评论 -
将控制器View加到另外一个控制器的View上,没有数据以及事件不可触发的原因
将控制器View加到另外一个控制器的View上,没有数据以及事件不可触发的原因极大可能是因为:控制器被提前销毁了解决方法:1. 对控制器添加强指针1. 一个控制器的view是可以随意调整尺寸和位置的 2. 一个控制器的view是可以随意添加到其他view中 3. 如果将一个控制器的view,添加到其他view中显示,那么要想办法保证控制器不被销毁 4. 原则:只要view在,view所在的控制原创 2016-08-01 10:45:49 · 346 阅读 · 0 评论 -
loaded the "xxx" nib but the view outlet was not set 错误的解决办法。
‘-[UIViewController _loadViewFromNibNamed:bundle:] loaded the “XXXView” nib but the view outlet was not set.’ 没有做nib文件到xxxViewControler程序的关联,特此记录下来: 1, 打开nib文件 2, 点击”File’s Owner”, 按command+4,设置Clas原创 2016-07-28 15:53:34 · 1353 阅读 · 0 评论 -
Xcode中添加一个pch文件
新建一个pch文件在build settings 中的 Prefix Header 中添加pch文件的路径($(SRCROOT)/项目名/pch文件名)将APPLE LLVM -Language中的Precompile Prefix Header 设为YES然后才clean, build即可原创 2016-07-28 13:10:02 · 299 阅读 · 0 评论 -
从NSURLConnection到NSURLSession
从NSURLConnection到NSURLSession转载 2016-07-12 14:57:15 · 367 阅读 · 0 评论 -
网络状态检测------苹果官方示例Reachability的使用
网络状态检测------苹果官方示例Reachability的使用原创 2016-07-12 13:47:28 · 1300 阅读 · 0 评论 -
iOS新的视频开发框架AVPlayerViewContoller与画中画技术
iOS新的视频开发框架AVPlayerViewContoller与画中画技术原创 2016-07-11 10:20:24 · 3558 阅读 · 0 评论 -
用NSJSONSerialization解析NSURLSession中的json数据
用NSJSONSerialization解析NSURLSession中的json数据原创 2016-07-10 21:10:22 · 1337 阅读 · 0 评论 -
使用xib封装一个自定义view的步骤
使用xib封装一个自定义view的步骤原创 2016-05-15 20:23:23 · 357 阅读 · 0 评论 -
UIImage加载图片的方式以及Images.xcassets对于加载方法的影响
http://www.jianshu.com/p/5358f587af38转载 2016-05-10 22:10:22 · 213 阅读 · 0 评论 -
The file “XXX.app” couldn’t be opened because you don’t have permission to view it.
当引入第三方的框架的时候 容易产生以下问题: The file “XXX.app” couldn’t be opened because you don’t have permission to view it.造成的原因: info文件中的字段Executable file 与 build settings栏中的Packaging中的Product Name 不一致就会导致上述截图的问题解决办原创 2016-08-07 16:58:35 · 1934 阅读 · 0 评论 -
IOS8 设置APP右上角图标通知数字的必须要做的事
IOS8: iOS8中设置application badge value 会抛错:Attempting to badge the application icon but haven’t received permission from the user to badge the原因是因为在ios8中,设置应用的application badge value需要得到用户的许可。使用如下方法咨询用户原创 2016-08-07 19:50:46 · 514 阅读 · 6 评论