1、9大基本数据类型
// short:短整型 ,2字节 %d
// int:整型 ,4字节 %d
// long:长整型,4字节(32位机,4字节;64位机 8字节) %d
// long long:长长整型 ,8字节
// float :单精度浮点型,4字节 %f
// double :双精度浮点型,8字节
// Byte:字节 ,1字节
// BOOL:布尔 (YES ,1;NO ,0) ,1字节 ,为赋值的话 初始值为 0
// char:字符 1字节
// 对象类型 %@
// 内存地址 %p
2、方法名命名规则:首字母小写,后面的每个单词首字母大写。布尔型的用 BOOL 来定义。
工程命名规则:首字母大写,后面的每个单词首字母都大写。
3、(-)号方法,也叫实例方法,由类的对象去调用,(+)号方法,也叫类方法,由类去调用
4、多参数方法的定义:-(void)方法名:(参数类型)参数名称 第二个参数的别名:(参数类型)参数名称;
5、 .m:main 主文件,方法的实现
.h:header 头文件,声明属性、方法
6、单行注释的快捷键Win+/,多行注释/* */
7、@end 为类声明结束的关键字
8、@interface ?NSObject ?@interface Student : NSObject
9、使用一个类,必须先导入头文件
10、打点调用和[ ]方法调用
zhangSan.age = 18 ;
[zhangSan setAge:18];
11、分配内存的时候,先进行初始化, 分配内存
12、调用父类中的初始化方法 ????
self = [super init];
13、子类里面 不能再声明和父类一样的属性,可以声明和父类同名的方法
/*继承:
1)子类可以继承父类所有的属性、方法(父类有的,子类都有);
2)子类可以重写父类的方法;
3)子类可以扩充自己特有的属性、方法;
*/
14、
ipad1,2 : 1024 * 768 9.7寸
ipad3 ,4 : 2048 * 1536
ipad mini :1024 * 768 7.9寸
ipad mini :(retina)2048 * 1536
ipad air (ipad 5) :2048 * 1536 9.7寸
ipad air 2 2048 * 1536 9.7寸
模拟器: 1024*768
iphone 模拟器尺寸(编程) 真机分辨率:
simulator device
iPhone 4 4s(3.5 inch) 320*480 points 640*960 px
iPhone 5 5s 5c(4 inch) 320*568 640*1136
iPhone 6 4.7inch 375*667 750*1334
iPhone 6 plus 5.5inch 540*960 1080*1920
15、
编程尺寸 真机分辨率
iPhone4:320 * 480 320 * 480 3.5inch
iPhone4S:320 * 480 640 * 960 3.5inch
iPhone5/5S/5C:320 * 568 640*1136 4 inch
iPhone 6 667 * 375 1334 * 750 4.7 inch
iPhone 6 plus 960 * 540 1920 * 1080 5.5 inch
16、双击获得一个目标,三击获得整行目标
17、ID的意思???
—————————————————————————————
1、UIlabel
UILabel * 标签名= [[UILabel alloc]init];
标签名.frame = CGRectMake(x,y,宽,高);
// UILabel * 标签名 =[[UILabel alloc]initWithFrame : CGRectMake(x,y,宽,高)];
标签名.text = @“标签名称”;
标签名.font = [UIfont systemFontOfSize:字体号];
标签名.textcolor = [UIcolor 颜色];
标签名.backgroundColor = [UIcolor 颜色];
标签名.shadowColor = [UIColor 颜色] ; // 设置阴影颜色
标签名.shadowOffset = CGSizeMake(1,1) ; // 设置阴影的偏移量
标签名.textAlignment = NSTextAlignmentCenter;(默认为左对齐)
标签名.numberOfLines = 0; 默认一行,0表示无数行,只有设置了行数,才可以换行。
字符串1 = [字符串2 stringByAppendingString : 字符串3] ;//给字符串添加一个字符串
[self.window addSubview:标签名];
2、UIImageView
UIImageView * 图片框名 = [[UIImageView alloc]init];
图片框名.frame = CGRectMake(x,y,宽,高);
图片框名.image = [UIImage imageNamed:@“图片名称.png”];
[self.window addSubview:图片框名];
3、UITextField(分配内存,位置,显示)
UITextField * 文本框名 = [[UITextField alloc]init];
文本框名.frame =CGRectMake (x,y,宽,高);
文本框名.placeholder = @“提示信息”;
文本框名.secureTextEntry = YES ; //安全的文本输入,用于输入密码
//设置键盘类型
文本框名.keyboardType = UIKeyboardTypeNumberPad(键盘类型);
//给textfield绑定一个事件
[文本框名 addTarget: self action:@selector(方法名) forControlEvents : UIControlEventEditingDidEndOnExit ] ;
// UIControlEventEditingDidEndOnExit 点击键盘上的return键,结束文本框的编辑,这样键盘就会自动的下去。
文本框名.borderStyle = UITextBorderStyleRoundRect; //RoundedRect 圆角矩形
[self.window addSubView:文本框名];
4、UIbutton(分配内存,位置,名称,事件,显示)
UIButton * 按钮名 = [[UIButton alloc]init] ;//不建议用这种方式创建UIButton,也不一定
按钮名.frame = CGRectMake(x,y,宽,高);
按钮名 .background = [UIColor 颜色];
[按钮名 setTitle:@“状态名称1”forState: UIControlStateNormal];
[按钮名 setTitle:@“状态名称2”forState: UIControlStateHighlighted];
[按钮名 setImage:@“图片1”forState: UIControlStateNormal];
[按钮名 setImage:@“图片2”forState: UIControlStateHighlighted];
[按钮名 setBackgroundImage:[UIImage imageNamed:@“图片名 称.png”]forState: UIControlStateNormal];
[按钮名 setBackgroundImage:[UIImage imageNamed:@“图片名 称.png”]forState: UIControlStateHignlighted(方法名) forControlEvents:]; ???
[按钮名 addTarget :(代理对象,一般为self) action : @selector(方法名)forControlEvents:(UIControlEventTouchUpInside)] ;
[self.window addSubview :按钮名];
5、button的另一种形式(这种形式创建的按钮)
UIButton * 按钮名 =[UIButton buttonWithType: UIButtonTypeRoundedRect或UIButtonTypeSystem];
//按钮名.buttonType = UIButtonTypeContactAdd; 这个句子有错误,buttonType为只读属性,不能赋值
6、键盘下去的方式
[self.window endEditing :YES];
7、触屏的四种方式
-(void)touchesBegan:(NSSet *)touches withEvent : (UIEvent *) event
{
NSlog(@“触屏开始了”);
}
-(void) touchesEnded : (NSSet * )touches withEvent : (UIEvent * ) event
{
NSlog(@“触屏结束了”);
}
-(void) touchesMoved : (NSSet * )touches withEvent : (UIEvent * ) event
{
NSlog(@“触屏移动了”); //飞行射击里面有用到
}
-(void) touchesCanelled : (NSSet * )touches withEvent : (UIEvent * ) event
{
NSlog(@“触屏取消了”);
}
8、产生随机数
arc4random(); unsigned int 无符号整形
9、让window可见
[self.window makeKeyAndVisible];
10、return YES;
11、(猜数字游戏)
获得输入框中的内容 NSString * 字符串名 = 输入框名.text;
把字符串转换成整数 Int 整数名 = [字符串名 intValue];
———————————————————————————————
1、判断字符串是否相等
isEqualToString
2、警示框 UIAlertView
UIAlertView * 警示框名 = [[UIAlertView alloc] initWithTitle:@“标题” message: @“警示信息”delegate: 代理对象(一般为self) cancelButtonTitle:@“取消”
otherButtonTitles:@“确定”,…,nil
[alert show];
3、从父视图中移除视图 [视图名 removeFromSuperview]
4、UIView的动画 (帧动画),动画只是一种过渡效果
//开启动画[UIView beginAnimations:nil context: nil ];
//持续时间[UIView setAnimationDuration:时间];
//动画的代理方法 [UIView setAnimationDelegate:self ];
// 设置动画翻转样式
[UIView setAnimationTransition :UIViewAnimationTransitionFlipFromLeft forView:( 针对哪个视图,一般为self.window )cache:(缓存YES /NO)];
// 如果cache设置成NO,则对于执行动画的转换过程中,会对每一帧图片进行更新,而且这种更新可能会明显的影响帧的速率。例如uiview上的按钮会慢慢显示出来,而不是一下子就显示出来。 ???
//设置动画运动方式 [UIView setAnimationCurve : UIViewAnimationCurveEaseOut ] ;
// (UIViewAnimationCurve)curve 弯曲 Ease 缓慢 舒缓
// UIViewAnimationCurveEaseInOut, 在开始和结束的时候运动慢 // slow at beginning and end
// UIViewAnimationCurveEaseIn, 在开始的时候运动慢 // slow at beginning
// UIViewAnimationCurveEaseOut, 在结束的时候运动慢 // slow at end
// UIViewAnimationCurveLinear, Linear 直线 匀速运动
//动画停止 [UIView setAnimationDidStopSelector:@selector(方法名)];
//动画自动转向 [UIView setAnimationReapetAuthoreverses : YES/NO ];
//提交动画[UIView commitAnimations];
注:动画代理方法和停止是配套的,开启动画和提交动画是配套的
//动画延时方法
[self performSelector:@selector(方法名) withObject:( id ) afterDelay: ( NSTimeInterval ) ];
另一种创建数组图片动画的方式
对象名.animationImages = [[NSArray alloc]initWithObjects : [UIImage imageNamed:@“图片1”],[UIImage imageNamed:@“图片2”],nil ] ; //这种数组里只能包含图片对象
对象名.animationDuration = 间隔时间;
对象名.animationRepeatCount = “循环次数,0代表无限循环”;
[对象名 startAnimation] ;
// [对象名 stopAnimation] ;
5、alpha 透明度 0 -1
6、定时器 NSTimer
[NSTimer scheduledTimerWithTimeInterval:(间隔时间) target:(目标,一般为self) selector :@selector(方法名) userInfo :(用户信息,一般为nil) repeater:(YES/NO)];//NO只会执行一次
//调用fire方法会让timer立即执行,不会等待第一次的间隔时间
[定时器名 fire] ; // 这句话是让执行到定时器的时候,立即开启定时器
//让定时器暂停 [定时器名 setFireDate:[NSDate distantFuture]];
//让定时器开始 [定时器名 setFireDate:[NSDate distantPast]];
//让定时器停止 [定时器名 invalidate];
7、数组(可变、不可变)
不可变数组 NSArray,initwithobjects用多个对象初始化数组
NSArray * 数组名 = [[NSArray alloc]initWithObjects :@“数组成员1”,@“数组成员2”,nil ];
NSLog(@“%@”,数组名); // 取所有数组成员
/*取某一个对象
NSString * 字符串名 = [数组名 objectAtIndex : 数组索引值] ;
NSLog(@“%@”,字符串名);
可变数组 NSMutableArray
NSMutableArray * 数组名 = [[NSMutableArray alloc]initWithCapacity : 数组容量,可设置为0,随着数组容量的增加而增加。
[数组名 addObject: 对象名];
//在某一个位置添加对象
[数组名 insertObject :对象名 atIndex: 索引值];
//移除数组中的某一个对象
[数组名 removeObject :对象名];
//返回数组中元素的个数
[数组名 count];
8、拼接字符串的方法 stringWithFormat 还有一种 intWithFormat
NSString * 变量1 = [NSString stringWithFormat : @“图片名 %d ”, i ] ;
UIImage * 变量2 = [UIImage imageNamed : 变量1] ;
将上面的两行合并起来
UIImage * 变量2 = [UIImage iamgeNamed:[NSString stringWithFormat:@“图片名 %d”, i ]] ;
[数组名 addObject : 变量2 ] ;
9、泛型遍历数组
for (NSObject * object in 数组名)
{
语句1;
}
10、(NSSet *)中的NSSet 类似于数组, touches 屏幕中 点的集合
11、tag值,UIView固有的属性,默认为0, 最好不要设置为 0
12、bounds 是以自身为参照坐标,自身的左上角为(0,0)
(UIImageView类型)名称1.bounds =CGRectMake(x,y,w,h);
————————————————————————————————————
1、获取按钮的tag值,并创建一个指针按钮来指向它
UIButton * 按钮名 = (UIButton *)[self.window viewWithTag : tag值] ;
2、猜数字游戏:两个按钮绑定同一个方法,有2种方式实现区分按钮操作,(设置静态变量static i)(设置tag值)一个按钮绑定两个方法,用这种方式实现(定义 BOOL isYes==YES/NO 或者 BOOL isAppear ==YES/NO)
}
1、用双重循环创建九宫格,按钮tag 设置:btn.tag = i * 3 + j ;
用单循环创建九宫格,按钮 tag 设置 : btn.tag = i+1 ;
2、图片名.userInteractionEnable=YES;
3、控件.transform = CGAffineTransformMakeRotation(角度/180*M_PI);
4、[UIView setAnimationRepeatAutoreverses:YES];——》动画回转
5、导航控制器(标记红色的为可能更改的地方)
//创建导航控制器
UINavigationController * 导航控制器名 = [[ UINavigationController alloc] initWithRootViewController :viewController ];(viewController 是类名)
self.window.rootViewController = 导航控制器名; //这句话有点不太理解???
//导航条隐藏
导航控制器名.navigationBarHidden = YES ;
//设置视图控制器的标题,会自动居中显示在导航条上
self.viewController.title = @“标题”;
//跳转到某个新建的导航页
viewController * 新建类变量名称 = [[ viewController alloc ] init]; (viewController 是类名)
[ self.navigationController pushViewController : 新建类变量名称 animated : YES /NO ];
//跳回到根视图控制器
[ self.navigationController popToRootViewControllerAniamted:(BOOL) ];
// pop 到指定控制器
[ self.navigationController popToViewController : (UIViewController) animated: (BOOL)];
//self.navigationController.viewControllers可以返回当前导航控制器中的控制器们
// 哪来的回哪去
[self.navigationController popViewControllerAnimated:(BOOL)];
//导航控制器间的传值
NSArray * 数组名 = self.navigationController.viewControllers ;
取出控制器的索引值 [ 数组名 objectAtIndex : 索引值 ] ;
//在导航控制器的两边创建按钮
UIBarButtonItem * 左边按钮 = [[ UIBarButtonItem alloc] initWithTitle : @“左边按钮名”style:UIBarButtonItemStylePlain target : self action : @selector (左边按钮方法) ];
self.navigationItem.leftBarButtonItem = 左边按钮 ;
// navigationItem :导航项 leftBarButtonItem : 左栏按钮项
UIBarButtonItem * 右边按钮 = [[ UIBarButtonItem alloc] initWithTitle : @“右边按钮名”style: UIBarButtonItemStylePlain target: self action :@selector(右边按钮方法) ];
self.navigatioItem.rightBarButtonItem = 右边按钮 ;
//直接跳转到根视图控制器
[self.navigationController popToRootViewControllerAnimated:<#(BOOL)#>] ;
→定义导航栏上左右按钮的几种形式(以右边按钮为例)
1⃣️系统自带的样式
// Custom 意思是自定义、、定义按钮为系统图表
UIButton * 按钮名 = [ UIButton buttonTypeWithType : UIButtonTypeInfoLight ] ;
UIBarButtonItem * 右按钮名 = [[ UIBarButtonItem alloc] initWithCustomView : 按钮名 ] ;
self.navigationItem.rightBarButtonItem = 右按钮名 ;
2⃣️用image定义按钮的形式
//定义按钮为图片
UIBarButtonItem * 右按钮名 = [[ UIBarButtonItem alloc ] initWithImage:[UIImage imageNamed:@“图片名”] style : 1 target :self action:@selector (方法名) ];
self.navigationItem.rightBarButtonItem = 右按钮名 ;
3⃣️用选项卡代替按钮 (????)
NSArray * 数组名 =[[ NSArray alloc ] initWithObjects :[UIImage imageNamed:@“图片名1”],[UIImage imageNamed:@“图片名2”],nil ];
UISegmentedControl * 名称 2= [[ UISegmentedControl alloc]initWithItems :数组名 ];
名称2.segmentedControlStyle = UISegmentedControlStyleBar ;
//设置选项卡按钮能弹起
名称2.momentary =YES ;
UIBarButtonItem * 右按钮名 =[[ UIBarButtonItem alloc] initWithCustomView : 名称2 ];
self.navigationItem.rightBarButtonItem = 右按钮名 ;
4⃣️把导航条中间的title换成选项卡,并可以提示信息
UISegmentedControl *
6、滚动条(UIScrollView)
UIScrollView * 滚动条名 = [ [ UIScrollView alloc] init ];
滚动条名.delegate = self ; ???????????
滚动条名.center = CGPointMake(x,y);
滚动条名.bounds = CGRectMake ( 0,0,width,height ) ;
滚动条名.contentSize = CGSizeMake (图片尺寸 * 图片数 , height ) ;
//使每一个每页明确
滚动条名.pagingEnabled = YES/NO ;
//设置滚动条下面的指示器条是否可视
滚动条名.showsHorizontalScrollIndicator = YES/NO ;
[ self.view addSubview:滚动条名 ];