IOS基础
_RTFSC_
是什么?为什么?怎么做?
展开
-
加载控制器的三种方式
第一种:通过实例化控制器//第一步设置window窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; //第二步实例化控制器(这里用的是系统,可替换成自己的控制器) UIViewController *vc = [[UIViewController alloc] init]; //第三原创 2016-07-09 20:44:41 · 1217 阅读 · 0 评论 -
归档存储
归档注意存储对象一定要遵守NSCoding协议实现其归档和解档方法,对其需要存储对象的属性进行归档和解档.新建需要存储的对象Person.h//// Person.h// 归档和解档//// Created by gaocai on 16/7/18.// Copyright © 2016年 gaocai. All rights reserved.//#import <Founda原创 2016-07-18 19:28:30 · 411 阅读 · 0 评论 -
Quartz2D-图片添加水印
如图在图片上添加水印 大体流程就是自己获取一个上下文将图片和文字和图片绘制到上下文当中;然后生成一张新的图片 //需要添加水印的图片 UIImage *image = [UIImage imageNamed:@"阿狸头像"]; //1.开启一个跟图片原始大小的上下文 UIGraphicsBeginImageContextWithOption原创 2016-07-29 07:36:56 · 275 阅读 · 0 评论 -
Quartz2D-圆形图片剪切
实现流程:在上下文绘制一个剪切后的圆;然后再将图片绘制上去;最后通过从上下文中取出这张图片 //加载剪切图片 UIImage *image = [UIImage imageNamed:@"阿狸头像"]; //1.获取上下文 UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);原创 2016-07-29 08:10:01 · 245 阅读 · 0 评论 -
IOS获取plist文件信息
//首先获得Info.plist文件路径 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil]; //其次通过这个文件路径获得字典文件(因为Info.plist内容本身就是个字典集) NSDictionary *dict = [NSDictionary dic原创 2016-07-08 21:11:18 · 713 阅读 · 0 评论 -
xcode7版本pch文件配置
第一步新建选文件Other再选PCH File第二步第三步第四步原创 2016-07-08 21:36:06 · 381 阅读 · 0 评论 -
PCH文件自定义NSLog及存在C文件时PCH文件定义注意事项
// 文件中存在C文件时需要加判断,当存在C文件时以下是不导入#ifdef __OBJC__// ...表示在宏里面的可变参数// __VA_ARGS__表示函数里面的可变参数#ifdef DEBUG //调试阶段#define XXXLog(...) NSLog(__VA_ARGS__)#else //发布#define XXXLog(...)#endif#endif原创 2016-07-08 22:22:26 · 380 阅读 · 0 评论 -
模仿UIApplication单例实现方式
.h文件//// Person.h// XMG//// Created by gaocai on 16/7/8.// Copyright © 2016年 gaocai. All rights reserved.//#import <Foundation/Foundation.h>@interface Person : NSObject//模仿UIApplication写个获取实原创 2016-07-08 23:22:06 · 252 阅读 · 0 评论 -
UIApplication作用
作用一:设置应用图标的提醒数字 在IOS8中需要注册用户通知 UIUserNotificationSettings *user = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]; [app registerUserNotificationSettings原创 2016-07-09 07:09:35 · 392 阅读 · 0 评论 -
IOS程序启动过程
启动流程和UIApplication的声明周期原创 2016-07-09 08:11:39 · 235 阅读 · 0 评论 -
通讯录之一Transform动画
主要使用tramsform对控件做平移和缩放,只要计算好坐标位置即可动画类GLoginAnimationView.h//// GLoginAnimationView.h// 通讯录//// Created by gaocai on 16/7/19.// Copyright © 2016年 gaocai. All rights reserved.//#import <UIKit/U原创 2016-07-20 07:37:04 · 298 阅读 · 0 评论 -
IOS核心动画
1.CABasicAnimation基础动画 //1.创建一个动画对象 CABasicAnimation *animation = [CABasicAnimation animation]; //2.设置属性值// animation.keyPath = @"position.x"; animation.keyPath = @"t原创 2016-08-03 21:46:20 · 340 阅读 · 0 评论 -
Quartz2D-截屏
//1.开启一个位图上下文 UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, 0); //2.把UIView内的东西会知道上下文当中 CGContextRef ctx = UIGraphicsGetCurrentContext(); //通过渲染的方式绘制到上下文当中 [sel原创 2016-08-01 07:02:56 · 350 阅读 · 0 评论 -
偏好存储
//存- (IBAction)save:(id)sender { //获取存储对象 以字典形式存储 无需关心文件名和路径 读取只需通过key NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:@"张三" forKey:@"name"];}原创 2016-07-18 07:42:09 · 450 阅读 · 0 评论 -
plist文件存储
//存储- (IBAction)save:(id)sender { NSArray *arr = @[@"姓名:", @"张三"]; //获取cache文件路径 //第一个参数是搜索的文件夹 //第二个参数是搜索的范围 //第三个是是否展开文件夹 NO的话会用~代替 NSString *cacheFile = NSSearchPathForDirecto原创 2016-07-18 07:39:48 · 1268 阅读 · 0 评论 -
UIPickerView简单实用
//// ViewController.m// PickerView简单实用//// Created by gaocai on 16/7/9.// Copyright © 2016年 gaocai. All rights reserved.//#import "ViewController.h"@interface ViewController () <UIPickerViewD原创 2016-07-09 22:56:10 · 258 阅读 · 0 评论 -
通讯录之顺传和逆传
IOS顺传还是比较简单的总的来说就是获取目标控制器给目标控制器赋值如下Segue连线传值:发送方 //通过标识符执行跳转() [self performSegueWithIdentifier:@"loginToContact" sender:nil];/** * 执行跳转之前回调用, 进行一些传值操作 */- (void)prepareForSegue:(UI原创 2016-07-22 22:15:06 · 726 阅读 · 0 评论 -
IOS轮播图实现
IOS轮播图实现方式相对Android实现方式还是简单许多的!!代码比较简单下面会给出Demo//// ViewController.m// ScrollView轮播图//// Created by gaocai on 16/7/24.// Copyright © 2016年 gaocai. All rights reserved.//#import "ViewControlle原创 2016-07-24 22:26:25 · 815 阅读 · 0 评论 -
UITableView之一分组简单使用
分组也就是类似设置界面中的界面展示1.首先在Storyboard中拖一个UITableView2.其次设置分组属性默认是Plain我们选择Grouped3.最后在将控件拖到代码中设置代理如下代码://// ViewController.m// TableView分组//// Created by gaocai on 16/7/25.// Copyright © 2016年 gaoc原创 2016-07-25 20:46:07 · 3096 阅读 · 0 评论 -
UITableView之分组案例
首先我们先看下我们要做到那种效果源码会在底部给出链接其次我们分下下数据 我们分析下这张图:首先数据的根是个数组里面是每个字典并包含header,footer,和cars属性;其次cars也是个数组里面也是每个字典并右包含name,icon属性。OK根据面向对象思想的思想我们可以把根视图看成个对象把而cars看成根视图每个字典里的cars对象。这也就是IOS中的数据转模型,这样的好处就是我们将数据封原创 2016-07-26 08:05:57 · 1033 阅读 · 0 评论 -
IOS懒加载不调用问题解决方案
在练习UITableView时使用懒加载老是nil才发现我忽略了一个基础性的错误,那就是_xxx和self.xxx的区别:当使用self.xxx会调用xxx的get方法而_xxx并不会调用,正确的使用个方式是通过self去调用才会执行懒加载方法//懒加载数据- (NSArray *)groupCarArray { if (_groupCarArray == nil) { NS原创 2016-07-26 08:17:36 · 4239 阅读 · 6 评论 -
事件传递之hitTest方法
当点击黄色UIVIew覆盖的UIButton时触发UIButton事件否则触发UIView触摸事件用点是否在控件上做判断- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { NSLog(@"%s", __func__);}- (UIView *)hitTest:(CGPoint)point wit原创 2016-07-27 08:18:15 · 961 阅读 · 0 评论 -
UINavigationController的简单实用
多控制器之一的UINavigationController如IPhone手机中的设置就是典型的UINavigationController实现 注意点:1,导航控制器的默认高度为44; 2,导航控制器有且只有一个根控制器 展示UINavigationController控制器的简单实用//// AppDelegate.m// 导航控制器//// Created by gaocai原创 2016-07-15 22:54:36 · 243 阅读 · 0 评论 -
设置导航控制器内容
一般导航控制器内容有三个属性分别有leftBarButtonItem,rightBarButtonItem,title属性或者方法设置 注意 1,导航控制器内容只能通过栈顶控制器设置内容2,导航控制器内容位置是系统决定而大小是自己决定具体代码如下:AppDelegate.m- (BOOL)application:(UIApplication *)application didFinishLau原创 2016-07-16 07:32:27 · 691 阅读 · 0 评论 -
Quartz2D-基本图形绘制
Quartz2D简单实用//// GRedView.m// Quartz2D-基本图形绘制//// Created by gaocai on 16/7/27.// Copyright © 2016年 gaocai. All rights reserved.//#import "GRedView.h"@implementation GRedView// Only原创 2016-07-27 22:22:48 · 302 阅读 · 0 评论 -
Quartz2D-饼状图
功能如图所示有三个饼状图点击时随机换颜色绘制流程:给出三个饼状图的比例;绘制的上一个扇形的终点作为下一个扇形的起点加上占圆的比例作为角度再将颜色进行填充;点击view是进行setNeedDisplay方法重绘具体代码://// GPieView.m// Quartz2D-饼状图//// Created by gaocai on 16/7/28.// Copyr原创 2016-07-28 08:17:41 · 325 阅读 · 0 评论 -
通讯录之手动型Segue和自动型Segue
在导航控制器中子控制器之间的跳转分为自动型和手动型,当控制器之间跳转无任何传值操作时可用自动型,当控制器之间跳转需要传值时则用手动型自动型手动型 注意1:手动型需要绑定标识符如下图 注意2:在代码中通过事件触发实现跳转传值如下代码/** * 监听登录按钮 触发 * * @param sender <#sender description#> */- (IBAction)logi原创 2016-07-22 08:15:05 · 568 阅读 · 0 评论