1. 基础UI、键盘下去、视图控制器XIB.rtf

//界面切换的方式3

    //1、切换window的根视图控制器

    //2、导航控制器 push pop

    //3、模态弹出 present(呈现)  dismiss(消失)




imageView 视图:


//    创建 imageView 视图 ,设置位置和大小

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];


//   与屏幕的大小相同       与应用程序屏幕大小相同

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];   

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].bounds];


conentMode 内容模式scale 缩放   fill 填充aspect 部分  fit  合适

    //UIViewContentModeScaleToFill默认是这种模式,图片会整体拉伸以填充整个imageview

    //aspect 部分  fit  合适

    //UIViewContentModeScaleAspectFit //不会强制拉伸到整个imageview,而是自适应拉伸

    //UIViewContentModeScaleAspectFill //还会跳虫整个imageview,但是可能不会显示全部内容



//clip   bounds  大小,范围

    //把超出imageview的部分切掉

   imageView.contentMode = UIViewContentModeScaleToFill;

4  clipsToBounds

    沿着父视图的边缘进行修剪,修剪子视图,只留下父子重叠的部分,剩余的“扔掉”。

   imageView.clipsToBounds = yes;

   imageView.layer.cornerRadian=30;


//    导入图片

    imageView.image = [UIImage imageNamed:@"222.jpg"];

//    用户可交互性

    imageView.userInteractionEnabled = YES;

//    添加子视图

    [self.window addSubview:imageView];

    

//    NSStringFromCGRect 用来输出坐标

//    输出主屏幕、应用程序屏幕的大小

    NSLog(@"====== %@",NSStringFromCGRect([UIScreen mainScreen].bounds));

    NSLog(@"---->> %@",NSStringFromCGRect([UIScreen mainScreen].applicationFrame));

    

//image 的图片是在普通状态下显示的 如果设置设置成高亮状态 并且高亮图片设置 那么只显示高亮图片

    imgView.image =[UIImage imageNamed:@"bg.jpg"];

    //highlightedImage属性和highlighted 有关 highlighted设置成yes  highlightedImage

    //才能显示出来

    imgView.highlighted =YES;

    imgView.highlightedImage =[UIImage  imageNamed:@"1.png"];

    imgView.userInteractionEnabled =YES;


Text属性

text     标签显示的静态文本

front    标签显示文本的字体大小

textColor    标签显示文本的颜色

textAlignment    文本显示的对齐方式。可选项有UITextAlignmentLeftUITextAlignmentRightUITextAlignmentCenter

lineBreakMode    标签换行使用的方法。可选项有UILineBreakModeWordWrapUILineBreadModeCharacterWrapUILineBreakModeWordClipUILineBreakModeHeadTruncationUILineBreakModeTailTruncationUILineBreakModeMiddleTruncation

numberOfLines    用来显示文本的最大行数。numberOfLines默认值是1。把numberOfLines设置成0,可以使用尽可能多的行数,只要在标签的边界内

adjustsFontSizeToFitWidth    如果设置为YES,标签会自动缩放字体大小,以便文本能够自适应标签的边界

minimumFontSize    如果adjustsFontSizeToFitWidth设置为YES,这个值用于限制自动调整时字体大小的最小值。如果达到此限制而且文本标签仍不符合,那么内容将根据lineBreakMode被截断。如果adjustsFontSizeToFitWidth设置为NO,这个值将被忽略

shadowColor    文本的阴影颜色。这个颜色默认是nil

shadowOffset    指标签的文本阴影相对于文本的偏移值。阴影偏移使用CGSize结构定义了(widthheight)偏移值。默认的偏移值是(0-1)。代表阴影相对于文本水平偏移是0,而垂直偏移是-1。因此(0-1)定义了向上一个像素的阴影,同理,(0-1)定义了向下一个像素的阴影

 

小窍门

 

默认情况下,UILabel背景颜色为白色不透明的。这意味着,标签的矩形内的像素必需被填写。为了把一个文本置于背景上面(例如,把文本置于一个透明背景或者图像上面),最好设置example.poaqueNO,以及设置example.backgroundColor[UIColor clearColor]



view    


//    创建新的 view

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 100, 200, 200)];

//    设置view背景颜色为白色

    view.backgroundColor = [UIColor yellowColor];

//    显示view

    [self.window addSubview:view];

//    textField 输入框添加到view 视图



//    创建新的 ImageView

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];


//    创建新的 ImageView ,必须添加image 图片

    imageView.image = [UIImage imageNamed:@“1.jpg"];

    [self.window addSubview:imageView];



textField 输入框:

//textField --->UIControl---->UIView

    /[textfield becomeFirstResponder];

//    创建textField 输入框UITextField *textField = [[UITextField alloc] init];

//    设置位置和大小textField.frame = CGRectMake(100, 150, 200, 30);

//    设置背景透明色textField.backgroundColor = [UIColor colorWithRed:1 green:0 blue:0 alpha:0.9];

//    //输入框中一开始就有的文字textField.text = @"这是一个输入框";

//    设置边框的样式textField.borderStyle = UITextBorderStyleRoundedRect;

//    设置提示语textField.placeholder = @"请输入密码: ...";

//    设置字体的位置(居中、左、右)textField.textAlignment = NSTextAlignmentCenter;

//    设置清除样式

   textField.clearButtonMode = UITextFieldViewModeUnlessEditing;

    UITextFieldViewModeNever,  从不出现

    UITextFieldViewModeWhileEditing, 编辑时出现

    UITextFieldViewModeUnlessEditing,  除了编辑外都出现

    UITextFieldViewModeAlways   一直出现

//    设置键盘的类型textField.keyboardType = UIKeyboardTypeNumberPad;

//    键盘的颜色textField.keyboardAppearance = UIKeyboardAppearanceDark;

//    设置 安全文本输入textField.secureTextEntry = YES;

    textField.adjustsFontSizeToFitWidth=YES;/设置为YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动  

    textField.textAlignment  = NSTextAlignmentCenter;

    textField.textColor = [UIColor whiteColor];

//设置 键盘的 return ”go”设置返回键的样式

   textfield.returnKeyType = UIReturnKeyGo;

//    设置输入框整体的透明度textField.alpha = 0.9;

//    显示 textField 输入框[self.window addSubview:textField];

// tagtextField

UITextField *textField = (UITextField *)[self.window viewWithTag:120];

    First 第一  Responder 响应

//    [textField resignFirstResponder];

//    [textField becomeFirstResponder];

textField.delegate = self;

//设置背景textField.background = [UIImage imageNamed:@"dd.png"];

//设置背景 textField.disabledBackground = [UIImage imageNamed:@"cc.png"];

//当输入框没有内容时,水印提示提示内容为password

textField.placeholder = @"password";

//设置输入框内容的字体样式和大小

textField.font = [UIFont fontWithName:@"Arial" size:20.0f];

//是否纠错

 textField.autocorrectionType = UITextAutocorrectionTypeNo;

typedef enum {

    UITextAutocorrectionTypeDefault, 默认

    UITextAutocorrectionTypeNo,   不自动纠错

    UITextAutocorrectionTypeYes,  自动纠错

} UITextAutocorrectionType;

//再次编辑就清空

textField.clearsOnBeginEditing = YES; 

//内容的垂直对齐方式  UITextField继承自UIControl,此类中有一个属性contentVerticalAlignment

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

//设置自动缩小显示的最小字体大小

  text.minimumFontSize = 20;

//设置键盘的样式

  text.keyboardType = UIKeyboardTypeNumberPad;

typedef enum {

    UIKeyboardTypeDefault,       默认键盘,支持所有字符         

    UIKeyboardTypeASCIICapable,  支持ASCII的默认键盘

    UIKeyboardTypeNumbersAndPunctuation,  标准电话键盘,支持+*#字符

    UIKeyboardTypeURL,            URL键盘,支持.com按钮 只支持URL字符

UIKeyboardTypeNumberPad,              数字键盘

UIKeyboardTypePhonePad,     电话键盘

    UIKeyboardTypeNamePhonePad,   电话键盘,也支持输入人名

UIKeyboardTypeEmailAddress,   用于输入电子 邮件地址的键盘     

UIKeyboardTypeDecimalPad,     数字键盘 有数字和小数点

    UIKeyboardTypeTwitter,        优化的键盘,方便输入@#字符

    UIKeyboardTypeAlphabet = UIKeyboardTypeASCIICapable, 

} UIKeyboardType;

 //首字母是否大写

  text.autocapitalizationType = UITextAutocapitalizationTypeNone;

typedef enum {

    UITextAutocapitalizationTypeNone, 不自动大写

    UITextAutocapitalizationTypeWords,  单词首字母大写

    UITextAutocapitalizationTypeSentences,  句子的首字母大写

    UITextAutocapitalizationTypeAllCharacters, 所有字母都大写

} UITextAutocapitalizationType;

[textField becomeFirstResponder];//让输入框在刚显示的时候就弹出键盘

//return键变成什么键

  text.returnKeyType =UIReturnKeyDone;

typedef enum {

    UIReturnKeyDefault, 默认 灰色按钮,标有Return

    UIReturnKeyGo,      标有Go的蓝色按钮

    UIReturnKeyGoogle,标有Google的蓝色按钮,用语搜索

    UIReturnKeyJoin,标有Join的蓝色按钮

    UIReturnKeyNext,标有Next的蓝色按钮

    UIReturnKeyRoute,标有Route的蓝色按钮

    UIReturnKeySearch,标有Search的蓝色按钮

    UIReturnKeySend,标有Send的蓝色按钮

    UIReturnKeyYahoo,标有Yahoo的蓝色按钮

    UIReturnKeyYahoo,标有Yahoo的蓝色按钮

    UIReturnKeyEmergencyCall, 紧急呼叫按钮

} UIReturnKeyType;

//键盘外观

textView.keyboardAppearance=UIKeyboardAppearanceDefault

typedef enum {

UIKeyboardAppearanceDefault 默认外观,浅灰色

UIKeyboardAppearanceAlert     深灰 石墨色

} UIReturnKeyType;

//设置代理用于实现协议

  text.delegate = self;

 //textfield加到视图中

  [self.window addSubview:text];

 

//最右侧加图片是以下代码   左侧类似

    UIImageView *image=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"right.png"]];

    text.rightView=image;

    text.rightViewMode = UITextFieldViewModeAlways; 

 typedef enum {

    UITextFieldViewModeNever,

    UITextFieldViewModeWhileEditing,

    UITextFieldViewModeUnlessEditing,

    UITextFieldViewModeAlways

} UITextFieldViewMode;

//return键键盘往下收  becomeFirstResponder

 类要采用UITextFieldDelegate协议

text.delegate = self;  声明text的代理是我,我会去实现把键盘往下收的方法 这个方法在UITextFieldDelegate里所以我们要采用UITextFieldDelegate这个协议

- (BOOL)textFieldShouldReturn:(UITextField *)textField

{

    [text resignFirstResponder];    //主要是[receiver resignFirstResponder]在哪调用就能把receiver对应的键盘往下收

    return YES;

}

重写绘制行为

除了UITextField对象的风格选项,你还可以定制化UITextField对象,为他添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围。以下方法都可以重写。

 

– textRectForBounds:      //重写来重置文字区域

– drawTextInRect:          //改变绘文字属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super.

– placeholderRectForBounds:  //重写来重置占位符区域

– drawPlaceholderInRect:  //重写改变绘制占位符属性.重写时调用super可以按默认图形属性绘制,若自己完全重写绘制函数,就不用调用super.

– borderRectForBounds:  //重写来重置边缘区域

– editingRectForBounds:  //重写来重置编辑区域

– clearButtonRectForBounds:  //重写来重置clearButton位置,改变size可能导致button的图片失真

– leftViewRectForBounds:

– rightViewRectForBounds:

 

委托方法

 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{  

//返回一个BOOL值,指定是否循序文本字段开始编辑  

    return YES;  

}  

- (void)textFieldDidBeginEditing:(UITextField *)textField{  

 //开始编辑时触发,文本字段将成为first responder  

}  

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{  

//返回BOOL值,指定是否允许文本字段结束编辑,当编辑结束,文本字段会让出first responder  

   //要想在用户结束编辑时阻止文本字段消失,可以返回NO  

   //这对一些文本字段必须始终保持活跃状态的程序很有用,比如即时消息  

    return NO;  

}  

 - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{  

 //当用户使用自动更正功能,把输入的文字修改为推荐的文字时,就会调用这个方法。  

//这对于想要加入撤销选项的应用程序特别有用  

//可以跟踪字段内所做的最后一次修改,也可以对所有编辑做日志记录,用作审计用途。     

//要防止文字被改变可以返回NO  

//这个方法的参数中有一个NSRange对象,指明了被改变文字的位置,建议修改的文本也在其中  


     return YES;  

}  

 - (BOOL)textFieldShouldClear:(UITextField *)textField{  

 

//返回一个BOOL值指明是否允许根据用户请求清除内容  

//可以设置在特定条件下才允许清除内容  

     return YES;  

}  


-(BOOL)textFieldShouldReturn:(UITextField *)textField{  

 

//返回一个BOOL值,指明是否允许在按下回车键时结束编辑  

 //如果允许要调用resignFirstResponder 方法,这回导致结束编辑,而键盘会被收起[textField resignFirstResponder];

//查一下resign这个单词的意思就明白这个方法了  

 

     return YES;  

}  

 通知

UITextField派生自UIControl,所以UIControl类中的通知系统在文本字段中也可以使用。除了UIControl类的标准事件,你还可以使用下列UITextField类特有的事件

 UITextFieldTextDidBeginEditingNotification

UITextFieldTextDidChangeNotification

UITextFieldTextDidEndEditingNotification

当文本字段退出编辑模式时触发。通知的object属性存储了最终文本。

 因为文本字段要使用键盘输入文字,所以下面这些事件发生时,也会发送动作通知

UIKeyboardWillShowNotification   //键盘显示之前发送

UIKeyboardDidShowNotification    //键盘显示之后发送

UIKeyboardWillHideNotification   //键盘隐藏之前发送

UIKeyboardDidHideNotification    //键盘隐藏之后发送

正文结束


键盘设置

//    键盘返回键样式

    userTF.returnKeyType = UIReturnKeyNext;

//    设置键盘颜色

    userTF.keyboardAppearance = UIKeyboardAppearanceDark;

//    设置键盘样式  数字键盘

    userTF.keyboardType = UIKeyboardTypeNumberPad;


//    将数字键盘 NumberPad 改变成Return键为Next样式的      Default  默认的

    userTF.keyboardType = UIKeyboardTypeDefault;

    userTF.returnKeyType = UIReturnKeyNext;





    

    

label标签:    

//设置字体lab1.font = [UIFont fontWithName:nil size:20];

UILabel  * label = [[UILabel alloc]init];

CGRect  rect = CGRectMake(0, 0, 100, 100);

label.frame = rect ;   

//    创建  label标签

    UILabel *label = [[UILabel alloc] init];

//    设置label的位置和大小

    label.frame = CGRectMake(20, 150, 80, 30);

//    设置文本内容

    label.text = @"用户名:";

//    设置行数  0 是任意行

    label.numberOfLines = 0;

//    设置文本颜色

    label.textColor = [UIColor blackColor];

//    设置背景颜色

    label.backgroundColor = [UIColor yellowColor];

//    设置字体的位置(居中、左、右)

    label.textAlignment = NSTextAlignmentCenter;

//    设置断点的样式//分行模式

    lab.lineBreakMode = NSLineBreakByTruncatingTail;


//    显示label文本

    [self.window addSubview:label];

    

UILabel *lab = (UILabel *)[self.window viewWithTag:110];    

 button按钮:

    

    

//    创建  button按钮 :buttonWithType  UIButton 的一个类方法(也可以说是静态方法)buttonWithType

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

风格有如下

 

typedef enum { 

    UIButtonTypeCustom = 0,           // 自定义,无风格 

    UIButtonTypeRoundedRect,        // 白色圆角矩形,类似偏好设置表格单元或者地址簿卡片 

    UIButtonTypeDetailDisclosure,//蓝色的披露按钮,可放在任何文字旁 

    UIButtonTypeInfoLight,//微件(widget)使用的小圆圈信息按钮,可以放在任何文字旁 

    UIButtonTypeInfoDark,//白色背景下使用的深色圆圈信息按钮 

    UIButtonTypeContactAdd,//蓝色加号(+)按钮,可以放在任何文字旁 

} UIButtonType; 


//    设置位置和大小

    button.frame = CGRectMake(120, 300, 80, 100);

//    设置按钮的标题

    [button setTitle:@"点击提交" forState:UIControlStateNormal];

[btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];                        //设置标题颜色

[btn1 setTitleShadowColor:[UIColor grayColor] forState:UIControlStateNormal ];        //阴影 

[btn1 setBackgroundImage:[UIImage imageNamed:@"PIC"] 

enum { 

    UIControlStateNormal       = 0,  //常态                      

    UIControlStateHighlighted  = 1 << 0,                        //  高亮 

    UIControlStateDisabled     = 1 << 1,  //禁用 

    UIControlStateSelected     = 1 << 2,                         // 选中 

    UIControlStateApplication  = 0x00FF0000,              // 当应用程序标志使用时 

    UIControlStateReserved     = 0xFF000000              // 为内部框架预留的 

}; 

默认情况下,在按钮被禁用时,图像会被画的颜色深一些。要禁用此功能,请将这个属性设置为NO

 

btn1.adjustsImageWhenHighlighted = NO; 

属性设置为YES,可令按钮在按下时发光。这可以用于信息按钮或者有些重要的按钮:

 

btn1.showsTouchWhenHighlighted = YES;

 

四、重写绘制行为

 

你可以通过子类化按钮来定制属于你自己的按钮类。在子类化的时候你可以重载下面这些方法,这些方法返回CGRect结构,指明了按钮每一组成部分的边界。

注意:不要直接调用这些方法, 这些方法是你写给系统调用的。

 

backgroundRectForBounds   //指定背景边界 

 

contentRectForBounds // 指定内容边界 

 

titleRectForContentRect    // 指定文字标题边界 

 

imageRectForContentRect     //指定按钮图像边界 

 

例:

- (CGRect)imageRectForContentRect:(CGRect)bounds{ 

     return CGRectMake(0.0, 0.0, 44, 44); 

 } 


//    设置按钮标题的字体大小

    button.titleLabel.font = [UIFont systemFontOfSize:20];


//    设置按钮背景图片

    UIImage *image = [UIImage imageNamed:@"222.jpg"];

    [button setBackgroundImage:image forState:UIControlStateNormal];

[btn2 setImage:[UIImage imageNamed:@"pic"] forState:UIControlStateNormal]; 

//    设置按钮背景图片 

 

    [loginButton setBackgroundImage:[UIImage imageNamed:@"3"] forState:UIControlStateNormal];


   // btn.textInputContextIdentifier =@"1234";


//    设置高亮状态

    [button setTitle:@"Submit" forState:UIControlStateHighlighted];

//    设置标题颜色

    [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

//    显示button按钮

    [self.window addSubview:button];

//    设置tag

   button.tag = 100;

    


绑定方法 : addTarger


//   绑定方法 使用 addtarget 方法名:buttonClick

//    使用同一个方法时,方法名:buttonClick:

    [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];


//实现buttonClick方法


- (void)btnClick:(UIButton *)sender

{

    switch (sender.tag) {

        case 11:

        {

            NSLog(@"denglu ");

        }

            break;

        case 12:

        {

            [self createRegistPage];

        }

            break;

            

        default:

            break;

    }

}

 [btn1 addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside]; 

 

-(void)btnPressed:(id)sender{ 

   

UIButton* btn = (UIButton*)sender;  

//开始写你自己的动作 

根据tagbtn

UIButton *btn = (UIButton *)[self.window viewWithTag:10086];


3 userInteractionEnabled   用户的交互性

可交互性目前影响:

按钮的touch事件,textField的输入等。


UIView  userInteractionEnabled YES

UIImageView   NO

UILabel   NO


可交互性还由视图的层级结构来决定。


如果父视图不可交互,那么上面的子视图都不交互。反之,如果父视图是可交互的,则子视图的交互性由子视图自己决定。但是视图的可交互性是可以设置的。



键盘下去:(失去、成为第一响应)



//让键盘下落的方式有以下几种

//1. 触摸方法

//  1.1 可以使用EndEditing

//  1.2 可以使用resignFirstResponder 让对象失去第一响应


//2. textfield对象绑定方法

// 记得绑定的事件为UIControlEventEditingDidEndOnExit

// 把方法实现一下



//  1.使用endEditing  (最常用)

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    [self.window endEditing:YES];

}



//  使用resignFirstResponder 让对象失去第一响应

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

//    window上所有的正在编辑的状态结束

//    [self.window endEditing:YES];

    

  UITextField *textField = (UITextField *)[self.window viewWithTag:10];

//    resign 失去 first 第一 responder  响应

    [textField resignFirstResponder]; 

   

//    成为第一响应

    [textField becomeFirstResponder];

}


//    UITextField *textField = (UITextField *)[self.window viewWithTag:120];

    resign  失去

    First 第一  Responder 响应

//    [textField resignFirstResponder];

//    [textField becomeFirstResponder];


键盘return键的控制


//   2. textfield对象绑定方法  实现键盘下去

//    EditingDidEndOnExit 编辑结束并退出

    [userTextField addTarget:self action:@selector(keyboardDown) forControlEvents:UIControlEventEditingDidEndOnExit];


//  方法体中不需要返回和输出

- (void)keyboardDown

{

    

}



键盘Next键   点击登录按钮


-(void)PSkeyboardDown

{



//  方法1:self 调用登录页面

    [self creatLoginPage];


//   方法2 : tag值获取loginBtn按钮

    UIButton *loginBtn = (UIButton *)[self.window viewWithTag:333];

//    self 调用buttonClick 方法

    [self buttonClick:loginBtn];

       

//    方法3

//    把按钮loginBtn设置为全局变量   通过loginBtn的对象去调用发送事件的方法用那种点击事件去触发

    [loginBtn sendActionsForControlEvents:UIControlEventTouchUpInside];

}


button 调用方法 (发送事件方法)


-(void)keyboardDown

{

//  方法1

//    tag值获取loginBtn按钮

    UIButton *loginBtn = (UIButton *)[self.window viewWithTag:333];

//    self 调用buttonClick 方法

    [self buttonClick:loginBtn];

    

    

//    方法2

//    把按钮loginBtn设置为全局变量   通过loginBtn的对象去调用发送事件的方法用那种点击事件去触发

    [loginBtn sendActionsForControlEvents:UIControlEventTouchUpInside];

}





点击事件:switch  case语句


-(void)buttonClick

{

    NSLog(@"点击了!");

}




-(void)buttonClick:(UIButton *)sentButton

{

 

    NSLog(@"==== %d",sentButton.tag);

    

    switch (sentButton.tag) {

        case 100:

        {

            NSLog(@"点击了");

            

        }

            break;

        case 200:

        {

            NSLog(@"200");

      

        }

            break;

            

        default:

            break;

    }

}


返回父视图


-(void)backClick

{

//    remove : 取消  删除当前的view视图, 返回到父视图中

    [view2 removeFromSuperview];

}


添加动画


//    begin : 开始  Animation :动画

    [UIView beginAnimations:nil context:nil];

    

//    Duration : 持续 持久  单位是 :s

    [UIView setAnimationDuration:2];

    

//    Transition :翻转

    [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.window cache:YES];


//    提交动画    commit  提交

    [UIView commitAnimations];

[UIView setAnimationDelay:2];//设置延迟时间为2秒


imageView.transform=CGAffineTransformMakeRotation(角度*M_PI / 180);设置旋转的角度


[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];设置运转速度

[UIView setAnimationDelegate:self];//如果需要在动画运行后再做一些事 设置动画的代理

[UIView setAnimationDisStopSelector:@selector(事件)];

-(void)animationDidStop:(NSString*)animationID finished:(NSNumber*)finished context:(void*)context


//context 可以是任意类型写上后即可以对他进行操作能传递到事件后面

{

[UIView beginAnimation:nil context:nil];

[UIView commitAnimations];

}

用户名和密码  : 判断语句


-(void)commitBtn

{


//   前提是 NewUserTF NewPswTF RePswTF都添加在 registView窗口

    UITextField *NewUserTF = (UITextField *)[registView viewWithTag:1];

    NSLog(@"有了对象就可以获取对象中的属性  %@",NewUserTF.text);

    

    UITextField *NewPswTF = (UITextField *)[registView viewWithTag:2];

    UITextField *RePswTF = (UITextField *)[registView viewWithTag:3];


    //  判断字符串是否相等  isEqualToString

    BOOL  result = [NewPswTF.text isEqualToString: RePswTF.text];

    //    length  长度

    //    判断字符串是否为空

    //    用户名不能为空   密码不能为空

    if (NewUserTF.text.length == 0 )

    {

        NSLog(@"用户名没有输入");

    }

    else if([NewPswTF.text isEqualToString:@""])

    {

        NSLog(@"密码没有输入");

    }

    else if (NewPswTF.text.length <6)

    {

        NSLog(@"密码长度小于6");

    }


         / /   !取反

    else if (!result)

    {

        NSLog(@"两次密码不一致");

    }

    else

    {

        NSLog(@"终于成功了");

        //    removeFromSuperview 从父视图上移除 

        [registView removeFromSuperview];


}


}



创建视图控制器:

(继承UIViewController)


//    创建视图控制器的对象

    TestViewController *testVC = [[TestViewController alloc] init];

//    将视图控制器添加到根视图控制器中

    self.window.rootViewController = testVC;


//    在视图控制器 .m文件中写代码       DidLoad  完成加载

- (void)viewDidLoad 

{

    [super viewDidLoad];

    // Do any additional setup after loading the view from its nib.   

}



视图控制器:XIB


//    关联对象 : IBOutlet   Outlet 出口 链接口

    IBOutlet UILabel *user;

    IBOutlet UITextField *userTF;


//   关联方法 : IBAction  声明方法要写在大括号以外

-(IBAction)buttonClick:(id)sender;





跳转到下一个视图控制器

(获取window方法)

- (IBAction)registButtonClick:(id)sender

 {

    //  创建视图控制器的对象

    registViewController *registVC = [[registViewController alloc] init];

    //  获取window的方法

    UIWindow *window = [UIApplication sharedApplication].keyWindow;

    //  将视图控制器添加到根视图控制器中

    window.rootViewController = registVC;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值