iOS基础篇2


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的意思???

 

—————————————————————————————

1UIlabel

          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:滚动条名 ]; 

 

 

 

 

 


你可能感兴趣的:(iOS基础)