一、程序的启动流程
任何⼀个程序,无论是基于Mac OS还是iOS,程序都是从main.m⽂件的main函数开始执⾏行的。
int main(int argc, char * argv[])
{
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil,NSStringFromClass([AppDelegate class]));
}
}
执⾏行UIApplicationMain函数时做了跳转,转到了AppDelete中
在AppDelete中
// 初始化一个window
self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds ]];
//设置窗口可见
[self.window makeKeyAndVisible];
//设置一个视图控制器
MainViewController *main=[[MainViewController alloc]init];
self.window.rootViewController=main;
二、UITextField的属性
1、text:要显⽰示的⽂文本内容
textField.text = @“text”;
2、textColor:⽂本内容的颜色
textField.textColor = [UIColor redColor];
3、textAlignment:⽂本的对⻬⽅方式(⽔平方向)
textField.textAlignment = NSTextAlignmentLeft; 包括字体颜色、对⻬齐⽅方式、占位符等等
 4、font:文本字体
textField.font = [UIFont fontWithName:@“Helvetica- Bold”size:20];//黑体加粗,20号字。
5、placeholder:占位字符串(没有任何输入时,给出的提示字符串)
textField.placeholder = @“请输入⽤用户名”;
6、enabled:是否允许输入
textField.enabled =NO;//不允许输入,不弹出建键盘
textField.enabled =YES;//默认是YES。允许输⼊盘等
7、clearsOnBeginEditing:是否开始输⼊入的时候清空输⼊入框内容
textField.clearsOnBeginEditing = YES;//清空
textField.clearsOnBeginEditing = NO;//不清空
8、secureTextEntry:是否⽂文字以圆点格式显⽰示
textField.secureTextEntry = YES;//密码模式
textField.secureTextEntry = NO;//普通模式
9、keyboardType:弹出键盘的类型(枚举值)
textField.keyboardType = UIKeyboardTypeNumberPad; //数字键盘
10、returnKeyType:键盘右下⾓角return按钮类型(枚举 值)
textField.returnKeyType = UIReturnKeyNext;
11、inputView:自定义输入视图(默认是键盘)
textField.inputView = myInputView;
12、inputAccessoryView:输入视图上⽅的辅助视图(默认nil)
textField.inputAccessoryView = myAccessoryView;
13、borderStyle :边框样式(枚举值)
textField.borderStyle = UITextBorderStyleRoundedRect;
14、clearButtonMode:清除按钮模式(枚举值)
textField.clearButtonMode = UITextFieldViewModeAlways; //总是显示清除按钮
15、leftView:输⼊入框左视图
textField.leftView = leftView;
16、leftViewMode:左视图的显⽰示模式
textField.leftViewMode = UITextFieldViewModeAlways; //总是显示左视图
17、rightView:输⼊入框右视图
textField.rightView = rightView;
18、rightViewMode:右视图的显示模式
textField.rightViewMode = UITextFieldViewModeAlways;
三、使用系统系协议的三大步骤
//1、添加协议
//2、设置代理
//3、实现协议方法
四、UIText常用代理方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
NSLog(@"当点击retain键的时候后执行该方法");
[textField resignFirstResponder];
//取消键盘
return YES;
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
NSLog(@"文本框将要执行时执行该方法");
//如果返回值为no,就认为不可编辑
return YES;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
NSLog(@"文本框正在执行时执行该方法");
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
NSLog(@"文本框将要结束时");
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
NSLog(@"文本框已经结束编辑时执行的方法");
NSLog(@"文本框内容为%@",textField.text);
}
五、UIButton
UIButton *button=[[UIButton alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];
//创建一个button
button.backgroundColor=[UIColor redColor];
//设置背景色
[button setTitle:@“按钮” forState:UIControlStateNormal];
//设置标题和状态
button.titleLabel.font=[UIFont systemFontOfSize:40];
//设置标题样式
//button.titleLabel.textColor=[UIColor redColor];//无效的设置颜色
[button setTitleColor:[UIColor cyanColor]forState:UIControlStateNormal];//正确的颜色设置
//设置高亮状态下的title
[button setTitle:@"B" forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor greenColor]forState:UIControlStateHighlighted];
//设置背景图片
[button setBackgroundImage:[UIImage imageNamed:@"001.png"] forState:UIControlStateNormal];
注:button相当于几个控件的组合,所以设置标题样式和颜色就要取到button的label来进行操作
//target 事件的触发目标,一般是自己
//action 触发什么方法
//Events 触发事件的方式
[button addTarget:self action:@selector(doButton:)forControlEvents:UIControlEventTouchDown];
//doButton:方法
-(void)doButton:(UIButton*)btn
{
//这里的btn,就是外面被按的按钮
NSLog(@"%@",btn.titleLabel.text);
NSLog(@"%@",[btn titleForState:UIControlStateNormal]);
}
注:在按键的方法里面,可以做很多操作。如果操作本类中的其他视图对象,如果是在属性中声明过了的话,可以直接对属性进操作。如果不是属性中声明的视图,添加到self.view 里面的,想要取到对象操作需要使用tag属性。
例如:声明一个label,想要对其进行改变,就需要使用tag
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(100, 200, 100, 50)];
lable.text=@"naan";
lable.tag=1;
[self.view addSubview:label];
但是注意一点,用[self.view viewWithTag:1]取到的对象是view,无法对其赋label下的text的值,这个时候就需要建一个指针指向,并且强制转换成label对象
UILabel *l=(UILabel*)[self.view viewWithTag:1];
这样就可以对label进行操作了
六、RGBA
//改变背景颜色,颜色随机生成
-(void)actton:(UIButton *)btn
{
red=(arc4random()%255)/255.0;
green=(arc4random()%255)/255.0;
blue=(arc4random()%255)/255.0;
self.view.backgroundColor=[UIColor colorWithRed:red green:green blue:blue alpha:1];
}
UIColor中有个静态方法是colorWithRed: green: blue: alpha: 。这个方法生成颜色是RGB值
RGB值的范围0~255,在方法中范围是0~1,所以在之前做了一个转换。最后一个属性是设置的透明度
七、NSTimer
在改变背景色的方法中,想要自动的隔几秒换背景色,这个时候就要使用到计时器。
定时器的使用
NSTimer* timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(actton:) userInfo:nil repeats:YES];
//TimeInterval :时间间隔,单位秒
//target:执行主体,self
//selector:执行的方法
//userInfo:信息
//repeats:是否重复
[timer fire];//计时器开始执行
[timer invalidate];//计时器停止执行
八、UIAlertView警告框
1、必须要show
2、message:警告框的主要内容
3、当只有一个other键,取消键在左边
4、当有多个other键,取消键在最下面,其他按顺序来
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"标题" message:@"显示的信息" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alert show];
//取消键的索引为零
switch (buttonIndex) {
case 0:
NSLog(@"取消");
break;
case 1:
NSLog(@"其他按钮的第一个");
break;
case 2:
NSLog(@“其他按钮的第二个,以此类推”);
break;
default:
break;
}