//界面切换的方式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 文本显示的对齐方式。可选项有UITextAlignmentLeft、UITextAlignmentRight、UITextAlignmentCenter
lineBreakMode 标签换行使用的方法。可选项有UILineBreakModeWordWrap、UILineBreadModeCharacterWrap、UILineBreakModeWordClip、UILineBreakModeHeadTruncation、UILineBreakModeTailTruncation、UILineBreakModeMiddleTruncation
numberOfLines 用来显示文本的最大行数。numberOfLines默认值是1。把numberOfLines设置成0,可以使用尽可能多的行数,只要在标签的边界内
adjustsFontSizeToFitWidth 如果设置为YES,标签会自动缩放字体大小,以便文本能够自适应标签的边界
minimumFontSize 如果adjustsFontSizeToFitWidth设置为YES,这个值用于限制自动调整时字体大小的最小值。如果达到此限制而且文本标签仍不符合,那么内容将根据lineBreakMode被截断。如果adjustsFontSizeToFitWidth设置为NO,这个值将被忽略
shadowColor 文本的阴影颜色。这个颜色默认是nil
shadowOffset 指标签的文本阴影相对于文本的偏移值。阴影偏移使用CGSize结构定义了(width,height)偏移值。默认的偏移值是(0,-1)。代表阴影相对于文本水平偏移是0,而垂直偏移是-1。因此(0,-1)定义了向上一个像素的阴影,同理,(0,-1)定义了向下一个像素的阴影
小窍门
默认情况下,UILabel背景颜色为白色不透明的。这意味着,标签的矩形内的像素必需被填写。为了把一个文本置于背景上面(例如,把文本置于一个透明背景或者图像上面),最好设置example.poaque为NO,以及设置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];
// tag找textField
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;
//开始写你自己的动作
}
根据tag找btn
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;
}