iOS
珊小瑚
加油!Fighting!
展开
-
iOS 简单使用Block回调
创建两个ViewController,RootViewController和FirstViewController,将RootViewController设为根视图//FirstViewController.h#pragma mark -知识点 block回调第一步:重定义block类型//将系统现有的类型定义一个别名 : typedef NSInteger INT;//FirstBlock 是原创 2015-12-08 20:44:05 · 702 阅读 · 2 评论 -
iOS 消息通知
简单写了一个通知的demo,通过以下代码可以简单了解一下我新建了3个UIViewController,分别命名为FirstViewController , SecondViewController , ThirdViewController 并在AppDelegate里设FirstViewController为根视图FirstViewController//FirstViewController.原创 2015-12-18 11:47:24 · 330 阅读 · 0 评论 -
iOS 简单使用sqlite3数据库
在这里我简单做一下苹果的sqlite3数据库,为了方便,我是在把数据库创建成了单例,按钮也是通过storybroad拖的.在创建文件之前,要引入数据库引入之后,我建立了一个学生的Model,里面有姓名,性别,年龄,学号的属性.//StudentModel.h#import <Foundation/Foundation.h>@interface StudentModel : NSObject@pro原创 2015-12-02 20:37:00 · 698 阅读 · 0 评论 -
iOS 线程的基本介绍
一个应用至少要有一个或多个进程,进程活跃状态说明当前软件正在运行 一个进程在手机里一般就代表一个应用 一个进程要执行很多线程(任务),一个线程一般就代表一个任务或多个任务NSThread: 轻量级的多线程 缺点: 需要我们手动管理线程的生命周期,线程锁,数据同步等事情,而线程锁会对系统有一定的开销NSOperation: 特点是不需要我们操心线程管理和数据同步等事情.原创 2015-12-02 17:12:48 · 335 阅读 · 0 评论 -
iOS 容器视图控制器
容器视图控制器:其实就是在一个viewController上面放两个或者多个viewcontroller,用父类viewcontroller切换子类控制器 新建一个viewController类,名字起为MovieListViewController 再建两个viewController作为子视图: ListViewController和CollectionViewController在 Mov原创 2015-12-02 16:37:39 · 409 阅读 · 0 评论 -
iOS 引导页
引导页是每个App都需要的,虽然它只在第一次打开App的时候才显示.下面我就讲一下怎么制作一个简单的引导页.新建一个UIViewController,用来写引导页 在这个引导页的ViewController里,导入头文件 #import “AppDelegate.h"然后就可以铺界面了,引导页有横滑和竖滑的,我这里做的是横滑的.@interface LSStartViewController (原创 2015-12-19 11:43:10 · 370 阅读 · 0 评论 -
iOS UIScrollView滚动视图/无限循环滚动/自动滚动
我是在UITableView的表头里创建的滚动视图#define WIDTH [[UIScreen mainScreen] bounds].size.width#define HEIGHT [[UIScreen mainScreen] bounds].size.height@property (nonatomic, strong)NSTimer *timer; //定时器@property (no原创 2015-12-19 19:58:38 · 6309 阅读 · 0 评论 -
iOS 圆形按钮(或图片)
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(50, 50, 60, 60); btn.backgroundColor = [UIColor redColor]; //半径 btn.layer.cornerRadius = 30; //裁原创 2015-12-03 10:40:20 · 3253 阅读 · 0 评论 -
iOS UISlider简单使用
//我把View封装到了RootView,在viewController里初始化 RootView *rootV = [[RootView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.view addSubview:rootV]; [rootV release];在封装起来的View里//初始化-原创 2015-12-03 12:01:01 · 419 阅读 · 0 评论 -
iOS NSURLSession网络请求(get/post/下载)
NSURLConnection在iOS 9.0以后就废弃了DEPRECATED deprecated废弃的意思NSURLSession 已经代替了NSURLConnection 功能上差不多.NSURLSession使用起来更方便,支持下载和上传文件,断点续传等使用起来很方便苹果将每次请求都定义为一个任务NSURLSessionDataTask 是请求普通网络数据的任务类NSURL原创 2016-01-06 20:17:21 · 829 阅读 · 0 评论 -
iOS Masonry的使用
Masonry 源码:https://github.com/Masonry/Masonry 也可以使用CocoaPods直接下载MasonryMasonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。我通过3个小例子简单介绍一下Masonry的使用方法实例1: UIView *blackV原创 2016-01-09 17:57:36 · 732 阅读 · 0 评论 -
iOS 简单的一些动画效果
1.点击按钮,弹出View,再次点击,View回去 创建一个Button,并给button设置一个Bool值,在button的点击事件里写: - (void)viewBtnAction:(UIButton *)btn{if (self.viewbtn.selected) { [UIView animateWithDuration:0.5 animatio原创 2015-12-01 15:33:16 · 599 阅读 · 0 评论 -
iOS 创建单例的三种方法
什么是单例? 答:单例的意思就是一个实例,单例是全局都可以使用的唯一的一个类原创 2015-12-01 15:27:50 · 2622 阅读 · 0 评论 -
iOS UIAlertController提示框
UIAlertController实现如图效果我设置了一个按钮,在按钮的点击事件里写的以下代码:- (void)action:(UIButton *)btn{ //创建提示框 UIAlertController *ac = [UIAlertController alertControllerWithTitle:@"这里" message:@"成功" preferredStyle:UI原创 2015-12-16 20:47:16 · 388 阅读 · 0 评论 -
iOS Label自适应高度/宽度 , 图片自适应
项目里许多地方都需要自适应Label上文字的高度,所以可以吧自适应高度的代码单独封装起来,写在一个类里,这样在其他的类里想调用这个方法,就可以直接使用,不用每个类都写一遍这个方法.我把这个类起个名字叫SizeForLabel//SizeForLabel.h@interface SizeForLabel : NSObject+(CGSize)labelRectWithSize:(CGSize)si原创 2015-12-09 21:25:31 · 3281 阅读 · 0 评论 -
iOS KVC 和 KVO 简单论述
KVC : key value code 键值编码: 间接给属性赋值(系统属性,自定义属性都可以) KVO:key value observing 键值观察者 , 是用来观察属性值变化的,不仅可以观察自定义类的属性,也可以观察系统的属性值变化下面就用代码看看:新建两个类,Person和Student//Student#import <Foundation/Foundation.h>@inter原创 2015-12-11 10:14:03 · 339 阅读 · 0 评论 -
iOS 遇到过的bug(未完待续)
做项目的时候,常常出现一些bug,导致程序crash,有时被这些bug搞得自己都快crash了.下面我大约整理了下我遇见过的bug,有些还是比较常见的.程序crash了,不要着急,看清楚崩溃信息,其实很容易就找到原因了,打全局断点也是一个很好的办法,但是全局断点并不能100%帮你找到错误源头,有时也是定位不到崩溃位置的,那就只能看崩溃信息了.1. 比较常见的就是 这个信息应该是最常见的,当你没有原创 2015-12-10 21:12:42 · 518 阅读 · 0 评论 -
iOS UICollectionView瀑布流
UICollectionView和UITableView一样,在项目里会经常使用,下面我就简单介绍下UICollectionView的一些基本属性和使用方法.我不仅铺了UICollectionView,还尝试铺了一下UICollectionView的表头,不需要的可以不铺.//在viewController里铺一个collectionView,并设置collectionView的表头,collect原创 2015-12-11 09:01:29 · 1062 阅读 · 0 评论 -
iOS 协议代理
在做项目的时候,传值是经常遇到到了,而传值的方法也是多样的,其中,协议/代理就是一种常常用到的传值方式. 什么情况用协议? 第一个类里创建了第二个类的对象,并给第二个类传值 当第二个类的对象想控制第一个类里的方法或给第一个类传值,必须用协议下面就用代码简单描述一下:我创建了一个RootViewController,并把RootViewController原创 2015-12-11 19:35:46 · 361 阅读 · 0 评论 -
iOS AutoLayout代码版
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //aView UIView *aView = [[UIView alloc] init]; aView.backgroundCol原创 2015-12-29 11:56:45 · 289 阅读 · 0 评论 -
iOS Quartz 2D 绘制图形(线段\三角形\矩形\圆\圆弧等)
Quartz 2D是一个二维绘图引擎,Quartz 2D 的API是C语言, 来自于CoreGraphic框架, 没有面向对象的思想 1.作用:绘制图形 : 线段\三角形\矩形\圆\圆弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件2.图形上下文 (Graphics Context) :原创 2015-12-29 09:09:06 · 1237 阅读 · 0 评论 -
iOS 获取系统当前时间
//获取系统当前时间 NSDate *currentData = [NSDate date]; //设置时间格式 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; //data转化成字符串原创 2015-12-15 17:32:59 · 238 阅读 · 0 评论 -
iOS AFNetworking请求数据(get/post)
AFNetworking 是常用的网络请求第三方,下面我就写一下用AFN进行get请求和post请求我把AFN单独封装到了一个类里,并写在了一个+号方法里,以便调用.GET//AFN请求数据+(void)getDataWithURL:(NSString *)url blcok:(AppToolsBlock)blcok{ //如果网址中有中文需要使用 : 中文编码 NSString *原创 2015-12-15 18:08:12 · 2230 阅读 · 0 评论 -
iOS UISegmentedControl分段按钮
实现如图效果类似手机QQ页面上面的分段按钮.我在UIViewController里写的这个控件,并且新建了两个UIView页面,一个红色,一个绿色,点击第一个按钮显示红色页面,点击第二个按钮显示绿色页面代码如下:#import "RootViewController.h"#import "RedView.h"#import "GreenView.h"@interface RootViewCon原创 2015-12-16 21:06:05 · 493 阅读 · 0 评论 -
关于iOS多线程
在 iOS 中其实目前有 4 套多线程方案,他们分别是:PthreadsNSThreadGCDNSOperation & NSOperationQueue转载 2016-03-17 16:32:27 · 519 阅读 · 0 评论