![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS常用基础知识
文章平均质量分 64
鹰瞳
代码虐我千百遍,我待代码如初恋
展开
-
iOS陆先森随笔(二)ios8,模拟器设置中文键盘
1.解决不弹出虚拟键盘:模拟器菜单->Hardware ->Keyboard, 点击Toggle Software Keyboard,虚拟键盘弹出2.解决虚拟键盘没有中文输入法的问题:第一步:设置schem菜单项 -> Product -> Scheme -> Edit Scheme -> 然后在弹出的界面里 选择 OPtion 项, 设置 Applicati原创 2016-03-02 18:33:35 · 466 阅读 · 0 评论 -
iOS陆哥开发笔记(十八) (Quartz2D矩阵操作)
一、关于矩阵操作1.画一个四边形通过设置两个端点(长和宽)来完成一个四边形的绘制。代码: - (void)drawRect:(CGRect)rect { //画四边形 //获取图形上下文 CGContextRef ctx = UIGraphicsGetCurrentConte原创 2016-04-14 17:57:37 · 469 阅读 · 0 评论 -
iOS陆哥开发笔记(十九) (Quartz2D图片剪切)
1.把图片显示在自定义的view中先把图片绘制到view上。按照原始大小,把图片绘制到一个点上。代码:- (void)drawRect:(CGRect)rect{ UIImage *image2 = [UIImage imageNamed:@"me"]; [image2 drawAtPoint:CGPointMake(100, 100)]原创 2016-04-14 17:59:07 · 389 阅读 · 0 评论 -
iOS陆哥开发笔记(二十) (Quartz2D屏幕截图)
简介: 在程序开发中,有时候需要截取屏幕上的某一块内容.完成截屏功能的核心代码:- (void)renderInContext:(CGContextRef)ctx;调用某个view的layer的renderInContext:方法即可storyboard界面搭建:代码: #import "ViewControlle原创 2016-04-14 18:01:06 · 535 阅读 · 0 评论 -
iOS陆哥开发笔记(二十一) (百度地图框架配置)
1. 配置info.plist文件a. 模拟器联网配置(Xcode7之后需要配置) "iOS9改用更安全的https的缘故" NSAppTransportSecurity NSAllowsArbitraryLoads true/> b. 如果在iOS9中使用了调起百度地图客户端功能,必须在"Info原创 2016-04-14 18:02:43 · 1719 阅读 · 0 评论 -
iOS陆哥开发笔记(二十二) (Mac 终端命令介绍)
OSX 的文件系统OSX 采用的Unix文件系统,所有文件都挂在跟目录 / 下面,所以不在要有Windows 下的盘符概念。你在桌面上看到的硬盘都挂在 /Volumes 下。比如接上个叫做 USBHD的移动硬盘,桌面上会显示出一个硬盘图标,它实际在哪里呢?在终端里执行 ls /Volumes/USBHD, 看看显示出的是不是这个移动硬盘的内容。根目录位置是 / 核心 Mac原创 2016-04-14 18:04:01 · 452 阅读 · 0 评论 -
iOS陆哥开发笔记(二十四) (C语言之内存四区和函数调用模型)
内存四区模型流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行1、内存四区:一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(he原创 2016-04-14 18:06:42 · 533 阅读 · 0 评论 -
iOS陆哥开发笔记(二十五) (NSCoding)
由于Sqlite数据库的blob数据和NSData的兼容比较好,我想尝试把一个NSArray存入Sqlite。Sqlite不支持数组的直接存储,所以我寻找了一些数组转化为NSData的方法。网上大多数的解决办法都是针对于字符数组,eg: NSArray*array01= [[NSArrayalloc]initWithObjects:@"1",@"2",@"3",nil];这种数原创 2016-04-14 18:08:27 · 414 阅读 · 0 评论 -
iOS陆哥开发笔记(二十六) (NSIndexPath)
是Foundation框架中的一个普通的类,它提供了到嵌套数列的树中特定节点的路径,事实上,它是一个整数阵列,表格视图使用这个去表现在特定章节中的特定行,UITableView用的所有索引路径正好有两个元素,第一个是章节,第二个是行。NSIndexPath和TableViews@interfaceNSIndexPath (UITableView) {}原创 2016-04-14 18:09:52 · 533 阅读 · 0 评论 -
iOS陆哥开发笔记(二十七) (同步、异步请求, GET、POST请求)
1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里原创 2016-04-14 18:11:13 · 480 阅读 · 0 评论 -
iOS陆哥开发笔记(二十八) (Autolayout(VFL)一)
VFL的子视图居中,网上搜了很多都没找到有用代码,自己研究出来了。代码如下UIActivityIndicatorView* prgrssView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; prgrssVie原创 2016-04-14 18:12:26 · 614 阅读 · 0 评论 -
iOS陆哥开发笔记(二十九) (Autolayout(VFL)二)
原创 2016-04-14 18:13:40 · 425 阅读 · 0 评论 -
iOS陆哥开发笔记(三十) (设计模式MVC、单例、代理、KVO)
其实iOS中的设计模式有非常多,常用的就下面这四种一.MVC设计模式(设计模式之王)MVC根据角色划分类,涉及到三个角色:Model:模型保存应用程序的数据。View:视图是模型的可视化表示以及用户交互的控件。Controller:控制器是一个协调所有工作的中介者。它访问模型中的数据并在视图中展示它们,同时它们还监听事件和操作数据。一个MVC模式的好原创 2016-04-14 18:14:53 · 538 阅读 · 0 评论 -
iOS陆哥开发笔记(十七) (Quartz2D图形上下文栈)
一、Quartz2D是怎么将绘图信息和绘图的属性绘制到图形上下文中去的?说明:新建一个项目,自定义一个view类和storyboard关联后,重写该类中的drawrect方法。画线的三个步骤:(1)获取上下文(2)绘图(3)渲染要求:画两条单独的线代码和效果图:- (void)drawRect:(CGRect)rect原创 2016-04-14 17:55:41 · 507 阅读 · 0 评论 -
iOS陆哥开发笔记(十六) (Quartz2D简单使用二)
一、画文字#import "MMTextView.h" @implementation MMTextView - (void)drawRect:(CGRect)rect { // 画文字 NSString *str = @"的额搜风搜分手了粉色发俄双方说法offFF瓦房你F回复F入会费W原创 2016-04-14 17:54:11 · 387 阅读 · 0 评论 -
iOS陆哥开发笔记(十五) (Quartz2D简单使用一)
#import "MMLineView.h"@implementation MMLineView// 当自定义view第一次显示出来的时候就会调用drawRect方法- (void)drawRect:(CGRect)rect{ // 1.取得和当前视图相关联的图形上下文(因为图形上下文决定绘制的输出目标)/ //原创 2016-04-14 17:52:40 · 421 阅读 · 0 评论 -
iOS陆先森开发随笔(三)iOS调试技巧(debug)
说到debug,可以说到的东西就太多了,一个程序员,即使逻辑非常出色,也会出现bug问题,那么debug是每个程序员必备的技巧,尤其是Xcode开发,苹果公司的开发的Xcode真的是十分强大,debug可以通过控制台,友盟,问题的异常抛出,等很多方法找出,发现bug那么开始我们的debug。 调试技巧一、po命令 不要说你不会po命令,假如不会,那就太菜了。原创 2016-03-02 19:09:05 · 611 阅读 · 0 评论 -
iOS陆先森开发随笔(四)tablview点击push到下一个页面,pop出来时位置下移问题
tablview点击push到下一个页面,pop出来时位置下移问题,关于导航下的tableView的点击后,利用压栈的方式进入下一个界面,然后返回的时候,会出现表格位置下移的问题。问题如下图,这是点击前的表格位置,很正常这是点进去后的界面,也很正常接下来问题来了,就是当点击返回的时候,会发现下面的问题上面的红色区域就是表格返回后偏移的位置,那么这个问题是怎么原创 2016-03-04 21:38:13 · 2804 阅读 · 1 评论 -
iOS陆哥开发笔记(五) (地图定位之官方API)
定位要实现地图、导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用。在Core Location中主要包含了定位、地理编码(包括反编码)功能。定位功能定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位原创 2016-04-14 17:24:54 · 3429 阅读 · 0 评论 -
iOS陆哥开发笔记(六) (cocoaPod的简单使用)
一、概要iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。二、安装由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要原创 2016-04-14 17:28:33 · 792 阅读 · 0 评论 -
iOS陆哥开发笔记(七) (AVFoundation简介)
在AVFoundation框架中AVAudioRecorder类专门处理录音操作,支持多种音频格式。下面是常用的属性和方法:属性说明@property(readonly, getter=isPlaying) BOOL playing是否正在播放,只读@property(readonly) NSUInteger numberOf原创 2016-04-14 17:30:43 · 5214 阅读 · 0 评论 -
iOS陆哥开发笔记(八) (GCD死锁及解决方案)
GCD导致死锁的原因和解决方案 所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作。A不能完成是因为它在等待B完成。但B也不能完成,因为它在等待A完成。于是大家都完不成,就导致了死锁(DeadLock)。在使用GCD的时候,我们会把需要处理的任务放到Block中,然后将任务追加到相应的队列里面,这个队列,叫做Dispatch Queue。然而,原创 2016-04-14 17:32:59 · 7005 阅读 · 0 评论 -
iOS陆哥开发笔记(九) (SDWebImage简单使用)
模拟器联网配置(Xcode7之后需要配置)"iOS9改用更安全的https的缘故" NSAppTransportSecurity NSAllowsArbitraryLoads true/> 第一步,下载SDWebImage,导入工程。github托管地址https://github.com/rs/S原创 2016-04-14 17:34:42 · 471 阅读 · 0 评论 -
iOS陆哥开发笔记(十) (iOS设计模式—单例模式)
iOS设计模式——单例模式单例模式用于当一个类只能有一个实例的时候, 通常情况下这个“单例”代表的是某一个物理设备比如打印机,或是某种不可以有多个实例同时存在的虚拟资源或是系统属性比如一个程序的某个引擎或是数据。用单例模式加以控制是非常有必要的。单例模式需要达到的目的1. 封装一个共享的资源2. 提供一个固定的实例创建方法3. 提原创 2016-04-14 17:36:25 · 551 阅读 · 0 评论 -
iOS陆哥开发笔记(十一) (容易造成循环引用的三种场景)
ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露。导致iOS对象无法按预期释放的一个无形杀手是——循环引用。循环引用可以简单理解为A引用了B,而B又引用了A,双方都同时保持对方的一个引用,导致任何时候引用计数都不为0,始终无法释放。若当前对象是一个ViewController,则在dismiss或者pop之后其dealloc无法被调用,在频繁的push或者pres原创 2016-04-14 17:38:43 · 344 阅读 · 0 评论 -
iOS陆哥开发笔记(十二) (tableViewCell侧滑显示多个按钮)
平常中所用的tableViewCell,左滑后,编辑状态只有一个删除按钮,现在很多APP上面都自定义实现了cell侧滑自定义编辑按钮,比如qq,微信侧滑后有“消息置顶”、“标记为未读”等。 话不多说, 代码如下:- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIn原创 2016-04-14 17:41:09 · 1138 阅读 · 0 评论 -
iOS陆哥开发笔记(十三) (Xcode统计代码行数)
在网上搜到几种统计源代码行数的方法:1、打开终端。2、cd到你项目的路径。3、输入如下命令:a) 统计整个工程的所有文件的代码量以及总量find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -p原创 2016-04-14 17:48:35 · 428 阅读 · 0 评论 -
iOS陆哥开发笔记(十四) (Quartz2D简单介绍)
OS开发UI篇—Quartz2D简单介绍一、什么是Quartz2DQuartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统Quartz 2D能完成的工作:绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字绘制\生成图片(图像)读取\生成PDF截图\裁剪图片自定义UI控件二、Quart原创 2016-04-14 17:50:58 · 514 阅读 · 0 评论 -
iOS陆哥开发笔记(三十一) (应用性能调优的建议和技巧)
注意:每在优化代码之前,你都要注意一个问题,不要养成”预优化”代码的错误习惯。时常使用Instruments去profile你的代码来发现需要提升的方面。Matt Galloway写过一篇很棒的如何利用Instruments来优化代码的文章。还要注意的是,这里列出的其中一些建议是有代价的,所建议的方式会提升app的速度或者使它更加高效,但也可能需要花很多功夫去应用或者使代码变得更加复杂,所以要原创 2016-04-14 18:16:11 · 725 阅读 · 0 评论