iOS
文章平均质量分 63
lawson_y
这个作者很懒,什么都没留下…
展开
-
swift-tableView滚动,里面图片发生偏移动画
1. 在cell的content View上放一个UIView控件,设置cell高度与uiview的高度为300 2. 在uiview上再添加一个UIImageView,设置左右靠边,高度设置为400 3. 设置图片的填充模式为aspectFill【放张大图】代码设置:设置tableviewHeight = 3002. override func tableView(_ tableView原创 2017-02-19 16:37:25 · 1159 阅读 · 0 评论 -
iOSURL编码
在iOS终端设置与服务器进行请求时区分get与post方法。 当前的一些框架如AFN已经内部进行了封装转码。但对于使用get方式进行请求,请求信息中有中文字符时便得不到正确的解法。使用get方式进行请求时需要将中文参数先进行URLencode转码str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; p原创 2016-03-16 17:24:42 · 485 阅读 · 0 评论 -
iOS 代码自定义cell示例
底色标黄为代码自定义cell重点处,入手从这几点即可。MyCell.h#import @interface MyCell :UITableViewCell@property(nonatomic,strong)UILabel *ageLabel;@property(nonatomic,strong)UILabel *nameLabel;原创 2015-08-01 22:48:49 · 840 阅读 · 0 评论 -
tableview的一些使用方法
tableView的一些方法的使用:tableView.backgroundColor = [UIColor clearColor]; // 设置背景图片tableView.separatorStyle = UITableViewCellSeparatorStyleNone; // 设置分隔线样式tableView.showsVerticalScrollIndicator = NO原创 2015-09-13 21:30:06 · 570 阅读 · 0 评论 -
NavigationBar的使用及创建
说明. 创建一个navigationBar 一个bar中有一个item,每个item中可以有许多个UIBarButtonItem1. 创建一个bar UINavigationBar *bar = [[UINavigationBar alloc] initWithFrame:(CGRect){0,20,width,46}]; UIImage *backImage =原创 2015-11-27 14:42:42 · 676 阅读 · 0 评论 -
UICollectionView详解
什么是UICollectionViewUICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最简单的形式)。如果你用过iBooks的话,可能你还对书架布局有一定印象:一个虚拟书架上放着你下载和购买的各类图书,整齐排列。其实这就是一个UICollectionView的表现形式,或者iPad转载 2015-12-16 17:15:56 · 630 阅读 · 0 评论 -
tabBar与状态栏
一些基本的statusBar与NavigationBar的使用1. 修改回退按钮的颜色:storyboard:可以上要回退到即显示回退按钮页面的前一个页面设置,如果是storyboard,选择navigationBar,在Interface Builder Document中找到Global Tint修改成自己想要的颜色即可。代码:原创 2015-12-16 18:03:56 · 684 阅读 · 0 评论 -
segue使用及区别点
参考:https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/Chapters/StoryboardSegue.htmlXcode6中segue取消原push与modal选项后新增了其他的选项几种segue:push、modal、popover、replace、cutom。原创 2015-12-16 18:06:13 · 1176 阅读 · 0 评论 -
addChildVC使用及个人分析
当前知晓的用处:【个人分析】在iOS5之后便出现了这个方法,文档上的讨论述:这个方法在当前的视图控制器与方法参数中的子控制器对象中建立父子关系。这个关系是必须的,尤其是当要加载这个子视图控制器的视图到当前的控制器中时。如果这个新的子控制器已经已经是这个视图控制器容器中的一个子关系,它会在即将加载的时候先进行移除操作。这个方法只被那些继承自一个原创 2015-12-16 18:09:04 · 1561 阅读 · 0 评论 -
键盘事件监听
在iOS开发中,键盘的事件是通过通知来进行处理,如果我们需要获取到键盘的高度,就需要去注册系统的键盘通知,并调用自定义的方法来实现监听。 键盘通知事件有以下几种:UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;UIKIT_EXTERN NSString *const UIKeyboardDidShowNotif原创 2015-12-21 15:44:27 · 884 阅读 · 0 评论 -
数据持久化的四种方式
查阅了一些资料再加上自己的理解整理出了一份东西,可能信息不全,会再度补充: 1. plist属性列表方式:适用对象:仅仅是Foundation框架中自带的一些类、比如:NSStringNSArray NSDIctionary NSSet NSNumber NSData #definefilePath [[NSSearchPathForDirector原创 2015-06-22 10:21:55 · 4749 阅读 · 0 评论 -
iOS扫描本地音频文件及后台播放
1. 扫描iOS中的音频文件: 导入框架:#import - (void) QueryAllMusic{ MPMediaQuery *everything = [[MPMediaQuery alloc] init]; NSLog(@"Logging items from a generic query..."); NSArray *itemsFro原创 2015-12-16 18:01:22 · 1363 阅读 · 0 评论 -
图片缓存 - SDWebImage
1. 在tableView中使用UIImageView + WebCache 分类#import <SDWebImage/UIImageView+WebCache.h>...- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { stati原创 2016-04-20 16:17:44 · 638 阅读 · 0 评论 -
Objective-C Runtime能做什么?
转自Anselz的博客在之前的文章中我们介绍了Runtime是什么,属于理论性介绍,你看了上篇很迫切的想知道Runtime到底能干什么?不要着急,这一篇Blog将将讲解Runtime怎么应用到实战中Runtime官方文档在这里,包括了接口名字以及使用说明。下文讲到的接口都能在此文档中找到。KVC中setValue中使用 我们知道在KVC中如果直接setValue如果对象没有这个属性或者是变量就会直转载 2016-04-19 14:57:31 · 432 阅读 · 0 评论 -
runtime - 方法动态添加
示例:void actionTest_IMP(id self, SEL _cmd){ NSLog(@"DemoTest");}- (void)addMethod{ class_addMethod([DemoClass class], @selector(actionTest), (IMP)actionTest_IMP, "v@:"); // Test DemoC原创 2016-04-20 15:45:04 · 404 阅读 · 0 评论 -
runtime - 属性的动态挂载
学习使用运行时知识:方法引入: tips:需要提前导入运行时框架#import <objc/runtime.h> static const char testKey; objc_setAssociatedObject(self, &testKey, @132, OBJC_ASSOCIATION_RETAIN); NSNumber *number = objc_getAss原创 2016-04-19 14:41:41 · 575 阅读 · 0 评论 -
iOS网络编程
没想到CSDN的两种编辑器不能进行同篇文章的切换!只能再整理一下了 1 . 使用CFNetwork(精简模式)定义一个URL 使用NSRUL创建一个url使用NSURLRequest来创建一个请求,要将上层创建的URL作为参数传递进去。如果用NSMutableURLRequest来创建,可以修改其请求的参数创建一个NSURLConnection 在方法中需要将请求作为参数传递,并添加代理为本原创 2016-01-04 14:51:17 · 544 阅读 · 0 评论 -
iOS解析HTML
HtmlParse【可去github下载】导入到工程包中,并在frameworks中导入libxml2.2文件 文件使用非ARC结构 添加UIKit框架的引用编译会提示 ’libxml/tree.h‘file not found,这是因为类库没有链接进来的原因。虽然导入但是需要再进行链接才行:在Build Settings 中搜索Header Search Paths :设置如下:原创 2015-12-16 18:15:32 · 609 阅读 · 0 评论 -
javaScript与Objective-C交互
准备:将webView创建,然后将其添加到view上再设置当前控制器为webview的代理。1. objc调用js,只需要有webview就可以直接调用,也可以在下面代理方法中调用:- (void)webViewDidFinishLoad:(UIWebView *)webView { // 不一定非要在这里面调用,只要是有webView便可以调js NSString *s原创 2015-11-22 22:41:16 · 519 阅读 · 0 评论 -
tableView编辑样式设计
override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { let actionShare = UITableViewRowAction(style: .default, title: "分享") { (原创 2017-02-17 17:47:48 · 1145 阅读 · 0 评论 -
iOS - 图形上下文使用
实现圆形图片的裁切有多种方法,可以直接设置layer.cornerRadius,但这样会造成离屏渲染,耗费内存。在此不详述离屏渲染,想看的戳进去吧:iOS离屏渲染研究先来个简单例子:实现圆形图片的裁切- (UIImage *)circleImage:(UIImage *)image { if (!image) return nil; // 开始上下文,下面不使用时一定要关闭,从上下文栈中原创 2016-07-07 14:10:39 · 2605 阅读 · 0 评论 -
iOS —— 数据解析Null处理
在使用JSON解析数据时总会出现null数据导致向某一对象发送消息时向NSNull发送,导致崩溃现象。 例:2016-06-07 11:48:02.008 MyDemo[1396:62255] -[NSNull objectForKeyedSubscript:]: unrecognized selector sent to instance 0xcf32382016-06-07 11:48:02原创 2016-06-07 11:48:58 · 3306 阅读 · 0 评论 -
iOS-setNeedsLayout等布局方法
列举下iOS layout的相关方法: layoutSubviews layoutIfNeeded setNeedsLayout setNeedsDisplay drawRect sizeThatFits sizeToFit大概常用的上面几个 , 具体的应该还有别的。layoutSubviews这个方法,默认没有做任何事情,需要子类进行重写 。 系转载 2016-04-24 12:17:14 · 1910 阅读 · 0 评论 -
iOS - 类扩展与分类的区别
类扩展 (Class Extension也有人称为匿名分类)作用 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展使用格式:@interface Mitchell()//属性//方法@end分类的区别 分类的小括号中必须有名字@interface 类名(分类名字)/*方法声明*/@end@implementatio转载 2016-04-24 11:58:16 · 838 阅读 · 0 评论 -
runtime - UIButton点击事件重复处理
原理,写一个UIButton的分类: 为分类添加一个属性表示控制两次按钮点击事件触发的时间间隔。 修改UIControl点击事件方法的实现过程,修改按钮的是否可交互行为。 代码:.h@interface UIButton (DelayControl)/** * 需要延迟的时间 */@property(nonatomic, assign) NSTimeInterval d原创 2016-04-24 11:40:22 · 1257 阅读 · 0 评论 -
多线程 - dispatch_barrier_async 使用及解析
dispatch_barrier_async(myConcurrentQueue, ^{ // 等1.2都执行完便会执行此方法,此时便会将线程延迟直至barrier执行完毕方可 NSLog(@"dispatch barrier"); });原创 2016-04-21 10:57:35 · 2961 阅读 · 0 评论 -
iOS 百度定位实现
1. 导入baiduSDK框架 (BaiduMapAPI_Base.framework,BaiduMapAPI_Location.framework 及其他可能要求的框架库)添加CoreLocation.framework systemConfiguration.framework libsqlite3.dylib , coreTelephony.framework将其中任原创 2015-11-22 22:17:47 · 725 阅读 · 0 评论 -
iOS 配置app打开第三方app,分享基础
目标:ios在当前app内打开其他app说明:如果一个第三方的app想要让其他app打开其就要配置所需要的协议头url scheme (info.plist中)1. 在当前app中添加如下方法(有直接打开app,如果没有安装则通过网页打开)- (IBAction)jumpAction:(id)sender { NSString *telStr =原创 2015-11-22 22:21:46 · 1513 阅读 · 0 评论 -
XMPP开发图片发送,图片转码方式
在进行图片传输时会使用到base64编码格式,具体使用方式如下:(使用为NSData的一个分类)1. 将图片数据转化成data 再将data转成base64编码NSData *picD = UIImageJPEGRepresentation(image,0);NSString *picS = [picD base64Encoding];2. 将base64Strin原创 2015-11-22 22:28:17 · 684 阅读 · 0 评论 -
支付宝集成
支付宝集成虽然有了官方的文档说明,但还有些让人迷惑,部分问题的解决方案也并不清楚,这次权做整理一番。1 . 打开Demo第一个看到的便是需要填写三个值 NSString *partner = @"XXXXX"; // 合作者身份ID NSString *seller = @"XXX.XXX.com"; //客户端号 NSString *privateKey = @""; /原创 2016-03-08 18:07:44 · 765 阅读 · 0 评论 -
iOS网络编程
网络编程:1. 使用CFNetwork(精简模式)> 定义一个URL 使用NSRUL创建一个url> 使用NSURLRequest来创建一个请求,要将上层创建的URL作为参数传递进去。如果用NSMutableURLRequest来创建,可以修改其请求的参数> 创建一个NSURLConnection 在方法中需要将请求作为参数传递,并添加代理为本身 如果连接不原创 2015-06-28 21:42:47 · 867 阅读 · 0 评论 -
iOS XML解析简述
XML数据解析:NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];设置代理:parser.delegate = self;开始解析[parser parse];代理方法:开始解析文档,可在其中初始化一些需要的量- (void)parserDidStartDocu原创 2015-06-28 21:44:27 · 847 阅读 · 0 评论 -
iOS JSON解析简述
JSON解析:JSON数据格式第属轻量级的数据交换格式,看发展程度可以说是逐渐成熟,成为网络数据的通用格式。有的json代码格式比较混乱,可以使用http:www.bejson.com网站来进行JSON格式化校验。此网站不仅可以检测json代码中的错误,而且可以以视图形式显示json中的数据内容很是方便常用的解析框架有:TouchJson、SBJson、JSONKit和iOS5原创 2015-06-28 21:47:04 · 659 阅读 · 0 评论 -
GCD退出线程执行
GCD本身并没有停止正在运行的线程的API,但可以通过添加线程时进行循环判断调用,如果停止的标志为ture则停止线程运行。方法如下:点击导航栏上的退出则退出线程通讯: self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"开始" style:UIBarButtonItemSty原创 2015-10-07 13:25:43 · 1459 阅读 · 0 评论 -
详解Objective-C runtime
原文地址:http://blog.securemacprogramming.com/2013/12/by-your-_cmd/ 感谢翻译小组成员wingpan热心翻译。本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇。如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315)。 本文是我在 Alt Tech Talks: Londo转载 2016-04-19 15:14:14 · 458 阅读 · 0 评论 -
iOS碰撞检测 - 坐标转换
意义:旨在找到响应的那个控件。先看一段代码:- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {CGPoint hitPoint = [_testButton convertPoint:point fromView:self]; if ([_testButton pointInside:hitPoint withEvent原创 2016-04-19 15:26:32 · 1071 阅读 · 0 评论 -
Xcode高效开发 ——快捷键
注:alt与option是同一个键【有的直接使用的键盘上无option键】1 . 左侧navigator command + 1-8 :Xcode左侧navigator commnad + 0 :为是否隐藏或是打开navigator2 . 与此相对,右侧的utilities便需要添加option操作了 option + command + 0 :隐藏或是打开utilities原创 2016-04-28 22:54:04 · 641 阅读 · 0 评论 -
Xcode插件失效
在使用xcode6.3版本升级到版本7时就会导致插件像图片自动提示,注释插件不怎么能用,需要进行处理下才行。步骤:1.关闭Xcode.2.打开终端,输入:tail -f /var/log/system.log3.别关闭终端,此时重新打开Xcode,就会看到终端不断的打印出log内容[MT] PluginLoading: Required plug-in compatib原创 2015-11-16 11:18:30 · 547 阅读 · 0 评论 -
iPhone开发版本号与固件带号匹配
iPhone固件带号与其手机型号匹配 if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G"; if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; if ([platform isEqualToString:原创 2015-11-16 11:24:08 · 913 阅读 · 0 评论 -
iOS 消息推送及本地通知,原理解析
1. deviceToken与UUID,UDID的区别deviceToken :A token that identifies the device to APS. The token is an opaque data type because that is the form that the provider needs to submit to the APS server原创 2015-07-23 21:46:26 · 1038 阅读 · 0 评论