UI
yibella
轨迹人生-偶尔提醒-开发者;
产品管理;
项目管理;
iOS开发;
展开
-
7. --SQLite 专属的条件查找
//查询单个学生-(Student *)selectStudentWithName:(NSString *)name{ Student *student = nil; //伴随指针 sqlite3_stmt *stmt = nil; //准备查询语句 NSString原创 2015-09-29 19:55:13 · 544 阅读 · 0 评论 -
UI 过后的杂谈
第一天接触UI,就是感觉跟学安卓一样,就是把C、OC表象化了,能看到具体的东西了。之后就是漫无目的学习各种控件,各种内部封装好的类。到如今,自己也是做了一个小Demo出来的菜鸟了,我觉得是时候该总结总结的时候,不然自己都不知道自己到底掌握了什么。首先,要做一款产品,那么你得知道,这款产品的主要功能是什么。所以就要根据这些个功能,开始打造产品的“着装”问题。第一:得有一个欢迎动画,这是普原创 2015-10-04 18:29:45 · 429 阅读 · 0 评论 -
note: please rebuild precompiled header ..... /UIKit-2DYE2I2D1B3GL.pcm 解决方案
fatal error: file '/Applications/Xcode 2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionV原创 2015-10-03 15:06:28 · 775 阅读 · 0 评论 -
线程 种类
//多线程种类 //1.脱离线程:线程结束后被销毁。 //2.非脱离线程:线程结束后被挂起,等待唤醒,不销毁。一旦有事件触发,就会再次响应。--主线程。我们自己写的线程,可以开启循环检测就属于非脱离。 //之所以能死循环,是因为runloop机制。原创 2015-10-05 15:31:02 · 1129 阅读 · 0 评论 -
UI 多线程——种类
//多线程种类 //1.脱离线程:线程结束后被销毁。 //2.非脱离线程:线程结束后被挂起,等待唤醒,不销毁。一旦有事件触发,就会再次响应。--主线程。我们自己写的线程,可以开启循环检测就属于非脱离。 //之所以能死循环,是因为runloop机制。原创 2015-10-05 20:47:38 · 452 阅读 · 0 评论 -
UI 实现多线程方式之一 NSObject
#pragma mark 方式一 NSObject //withObject:后面表示参数,是@selector里的方法需要的参数 [selfperformSelectorInBackground:@selector(subThread)withObject:nil];#p原创 2015-10-05 20:53:29 · 274 阅读 · 0 评论 -
UI 实现多线程方式之二 NSThread
#pragma mark 方式二 NSThread //第一种,必须要手动开启线程 NSThread *thread1 = [[NSThreadalloc]initWithTarget:selfselector:@selector(subThread1)object:nil]; [thread1start];原创 2015-10-05 20:55:45 · 279 阅读 · 0 评论 -
UI 实现多线程方式之三 NSOperation+NSOperationQueue
#pragma mark 方式三 NSOperation //第一种 NSInvocationOperation,单独使用必须手动开启线程。 NSInvocationOperation *invocation = [[NSInvocationOperationalloc]initWithTarget:selfselector:@s原创 2015-10-05 21:01:25 · 286 阅读 · 0 评论 -
pch文件 解决每个文件都需要重复引入的问题
1、建立一个.pch文件2、进入Building Setting 界面,在搜索栏中输入prefix,找到这一栏3、在prefix的后面双击,输入 $(SRCROOT)/工程名/pch文件名.pch,即可原创 2015-10-02 16:41:16 · 402 阅读 · 0 评论 -
把不是镂空图的图片 转化成 镂空图
//为什么要学会这个,因为在tabBar上的图标和navigationBar上的图标只能是镂空图才能显示。 //把图片封装成镂空图 //1.拿到图片 UIImage *image = [UIImageimageNamed:@"image.png"]; //2.渲染为原色版本原创 2015-10-02 16:30:16 · 1841 阅读 · 0 评论 -
UI_UITableView _新知识_02
1、学会管理一个程序,分级管理:首先自己先创建一个问价夹,在文件夹下分AppDelegate文件:专门用于管理AppDelegate.h/.m两个文件General: Categories-->类目:对系统类扩展方法Views -->自定义Cell、LTView,是一个公用视图ViewControllers -->自己写的公用控制器:比如在横屏竖屏的转换中,某些页面支持横屏,某些支持竖原创 2015-09-15 20:05:19 · 325 阅读 · 0 评论 -
9. --SQLite 关闭数据库
//关闭-(void)closeDB{ if (SQLITE_OK == sqlite3_close(db)) { db = nil; NSLog(@"关闭成功"); }else { NSLog(@"失败"); } }原创 2015-09-29 19:57:02 · 957 阅读 · 0 评论 -
4. --SQLite 专属的增加
//增-(void)insertStudent:(Student *)student{ //准备插入语句,因为student表里的number设置的是自增,所以可以不用再次设置。 NSString *insertSQL = [NSStringstringWithFormat:@"INSERT INTO 'student' (name,age,gender)原创 2015-09-29 19:40:47 · 328 阅读 · 0 评论 -
1 --SQLite 怎么关联起来
第一步:点击工程,点Building Phases 找到Link Binary With Libraries ,点一下,再点一下出现的+ 号,在搜索框中输入 sqlite 如果是Xcode显示的后缀是.dylib ,如果你升级到Xcode7 则后缀是.lib 前一个是动态库,后一个是静态库。这里提到的一点就是,我们自己上传的App,苹果是不允许我们写动态库的。之后会专门写一篇关于动态库和静态库的原创 2015-09-29 13:16:33 · 797 阅读 · 0 评论 -
3. --SQLite 创建表
//创建表-(void)createTable{ //准备sql语句 NSString *createTableSQL =@"CREATE TABLE IF NOT EXISTS 'student' ('number' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, 'name' TEXT NOT NUL原创 2015-09-29 19:38:12 · 1047 阅读 · 0 评论 -
7. --SQLite 专属的整体查找
比较麻烦。 //查询 又体现了多态:父类指针可以指向子类对象。在我们增加的时候,是一个可变数组,所以内部定义一个可变的数组,但是返回的却是不可变数组。-(NSArray *)selectAllStudents{ NSMutableArray *mutableArray = nil; //伴随指针原创 2015-09-29 19:50:50 · 364 阅读 · 0 评论 -
8. --SQLite 删除整个表
//删除整个表-(void)dropTable{ NSString *dropSQL = [NSStringstringWithFormat:@"drop table student"]; //执行 int result = sqlite3_exec(db, dropSQL.UTF8String,NULL, NULL,NULL原创 2015-09-29 19:56:07 · 481 阅读 · 0 评论 -
6. --SQLite 专属的修改
//根据名字来修改年龄-(void)changeStudentAge:(NSInteger)age withName:(NSString *)name{ NSString *changeSQL = [NSStringstringWithFormat:@"UPDATE 'student' SET age = %ld WHERE name = '%@' ",age,name]原创 2015-09-29 19:44:14 · 323 阅读 · 0 评论 -
Model 层数据在哪初始化? View层数据又在哪初始化?
//M层数据写在初始化方法,每一个item都是M层//初始化本身就是管理数据的。-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ if (self = [superinitWithNibName:nibNameOrN原创 2015-10-02 16:33:12 · 1143 阅读 · 0 评论 -
super 到底是什么
//super是一个编译器指令,指向父类,向父类发送消息 self = [superinitWithFrame:frame]; //1、初始化子类和父类的共有实例变量(子类继承下来的实例变量) //2.接收初始化结果: //2.1、如果一个类的父类不存在,返回结果为nil,实例变量的初始化将不再执行。(不允许初始化没有父类的实例变量原创 2015-10-01 14:55:35 · 591 阅读 · 1 评论 -
UI 实现多线程方式之四 GCD概念
//具有一定功能的代码块,一般是一个block或者函数。 //GCD以队列的方式进行工作,FIFO。 GCD中的两种队列: //SerialQueue:一次只执行一个任务。通常用于同步访问特定资源或数据。 //创建多个SerialQueue,各自的内部线程是同步执行,但是一个SerialQueue和另一个SerialQu原创 2015-10-05 21:07:55 · 337 阅读 · 0 评论 -
UI 实现多线程方式之四 GCD之全局队列
//获取全局队列 dispatch_queue_t globalQueue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); //向全局队列中添加任务 dispatch_async(globalQueue, ^{ NSLog(@"全局队列原创 2015-10-05 21:34:20 · 329 阅读 · 0 评论 -
UI 实现多线程方式之四 GCD之函数作为参数
//函数声明以及定义void function(void *name);void function(void *name){ NSLog(@" %s",name);} //GCD可以使用此函数向队列中添加函数,让函数执行。 //函数类型 void(*)(void *)--无返回值,但是有参数,参数类型是void *原创 2015-10-05 21:57:51 · 303 阅读 · 0 评论 -
定时器+反射变换 --->模拟一个音乐播放器的音乐专辑旋转
//准备imgView@property(nonatomic,strong)UIImageView *imgView;@end@implementation ViewController- (void)viewDidLoad { [superviewDidLoad];原创 2015-10-06 20:42:47 · 495 阅读 · 0 评论 -
UI 动画之CALayer+CAAnimation 之 CAKeyframeAnimation
#pragma mark 关键帧动画 CAKeyframeAnimation ---按着路径走 //keyPath需要强打并且是固定对应的。 CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimationanimationWithKeyPath:@"position"]; //第一步:准备原创 2015-10-06 21:21:50 · 355 阅读 · 0 评论 -
网络编程_get_异步-代理_获取网络数据
//1.创建URL NSURL *url = [[NSURLalloc]initWithString:GET_URL]; //2.创建 NSURLRequest *request = [[NSURLRequestalloc]initWithURL:url]; //3.创建链接对象,并设置代理 N原创 2015-09-28 17:56:33 · 310 阅读 · 0 评论 -
UI 动画之UIView动画 实现两个页面之间的切换
#pragma mark 准备两个视图模拟两个页面之间的切换 //准备两个View模拟两个页面 self.aView = [[UIViewalloc]initWithFrame:[UIScreenmainScreen].bounds]; _aView.backgroundColor = [UIColormagentaColor];原创 2015-10-06 20:30:09 · 1567 阅读 · 0 评论 -
UI 动画之CALayer+CAAnimation 之 CABasicAnimation
#pragma mark 为CALayer+CAAnimation准备视图 self.customLabel1 = [[UILabelalloc]initWithFrame:CGRectMake(100,100, 100, 100)]; _customLabel1.backgroundColor = [UIColorcyanColor原创 2015-10-06 21:07:18 · 351 阅读 · 0 评论 -
图片 渲染为原色 ,改为镂空图
//渲染 UIImage *image = [UIImageimageNamed:@"kiss.jpg"]; //渲染为原色版本 image= [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];原创 2015-10-14 20:20:35 · 490 阅读 · 0 评论 -
UI 手势
Tap / longPress / Rotation / Swipe / Pan / ScreenEdgePan原创 2015-12-01 20:50:37 · 263 阅读 · 0 评论 -
UI UIWindow / bounds / frame
、、、、、、、、、、、、、AppDelegate.m 、、、、、、、、、、、、、、、、、#import "AppDelegate.h"#define containerFindPassword 100#define containerRegiste 101@interface AppDelegate ()@end@implementation A原创 2015-09-01 09:26:35 · 513 阅读 · 0 评论 -
UI 动画之UIView动画的 四种 使用含有block的类方法 实现动画
#pragma mark 使用 含有block的类方法 //第一种: [UILabelanimateWithDuration:2animations:^{ //动画执行的方式。-旋转,平移,缩放等。 }]; //第二种 [UILabelani原创 2015-10-06 20:06:33 · 607 阅读 · 0 评论 -
UI 动画之反射变换的缩放
#pragma mark 缩放 //第一种:最原始的缩放,在原始状态的基础上。 _customLabel.transform =CGAffineTransformMake(2,0, 0, 2, 0, 0); //第二种:iOS内部封装了另外几个参数的处理,只需要外部传入要缩放的比例两个参数。 _cus原创 2015-10-06 19:49:25 · 357 阅读 · 0 评论 -
UI 动画之反射变换的平移
@interface ViewController ()//准备一个用于动画的UIView@property(nonatomic,strong)UILabel *customLabel;//静止,用来对比@property(nonatomic,strong)UIView *staticView;@end原创 2015-10-06 19:26:14 · 478 阅读 · 0 评论 -
UI 实现多线程方式之四 GCD之自定义并行队列
//第二种:自定义并行队列 dispatch_queue_t concurrentQueue = dispatch_queue_create("concurrent", DISPATCH_QUEUE_CONCURRENT); //向自定义并行队列中添加任务 dispatch_async(concurrentQueue, ^{原创 2015-10-05 21:52:51 · 549 阅读 · 0 评论 -
dispatch_once 写出 High Big Top 的单例类
//dispatch_once 添加的任务 在整个程序运行期间只会执行一次。(重复添加无效) //向队列中添加执行一次的任务 staticdispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSLog(@"真的只执行一次"); }); //这个是不能执行的。原创 2015-10-05 22:03:28 · 287 阅读 · 0 评论 -
UI 实现多线程方式之四 GCD之主队列
//GCD //1.主队列--串行队列 //获取主队列 dispatch_queue_t mainQueue =dispatch_get_main_queue(); //向主队列中添加任务 dispatch_async(mainQueue, ^{原创 2015-10-05 21:31:04 · 355 阅读 · 0 评论 -
Ui 实现多线程的四种方式
//iOS 实现多线程方式 //1.NSObject //2.NSThread //3.NSOperation/NSOperationQueue //4.GCD原创 2015-10-05 20:49:22 · 513 阅读 · 0 评论 -
UI 实现多线程方式之四 GCD之自定义串行队列
//创建自定义串行队列 dispatch_queue_t serialQueue = dispatch_queue_create("serial", DISPATCH_QUEUE_SERIAL); //向自定义串行队列中添加任务 dispatch_async(serialQueue, ^{ NSLog(@"seri原创 2015-10-05 21:36:14 · 748 阅读 · 0 评论 -
UI 动画之UIView动画之间的一些方法
放在开启动画和结束动画之间的。//设置动画间隔 [UILabelsetAnimationDuration:3]; //设置动画延时 [UILabelsetAnimationDelay:0.5]; //设置动画重复的次数 [UILabelsetAnimat原创 2015-10-06 19:43:36 · 443 阅读 · 0 评论