1.UISegmentedControl
{
NSArray *arr = @[@"小黄",@"小红",@"屎壳郎"];
//分段控制器 事件驱动型 控件
UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:arr];
//设置frame 默认是均匀分布宽度
seg.frame = CGRectMake(10, 100, 300, 30);
//设置指定段的宽度
[seg setWidth:150 forSegmentAtIndex:1];
//设置选中背景
//seg.tintColor = [UIColor redColor];
//设置背景图片
[seg setBackgroundImage:[UIImage imageNamed:@"toolBar.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
//指定段设置内容图片 // 可以设置 原始的图片
[seg setImage:[[UIImage imageNamed:@"003"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]forSegmentAtIndex:2];
//设置内容偏移量
[seg setContentOffset:CGSizeMake(10, 10) forSegmentAtIndex:0];
//传入一个字典 字典中写 可以设置字体和字体的颜色
NSDictionary *dict = @{NSFontAttributeName:[UIFont systemFontOfSize:20],NSForegroundColorAttributeName:[UIColor yellowColor]};
//修改属性字符串
[seg setTitleTextAttributes:dict forState:UIControlStateNormal];
//增加事件
[seg addTarget:self action:@selector(segClick:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:seg];
[seg release];
}
- (void)segClick:(UISegmentedControl *)seg {
//被点击 段的索引
NSLog(@"index:%d",seg.selectedSegmentIndex);
//获取指定段的标题
NSLog(@"title:%@",[seg titleForSegmentAtIndex:seg.selectedSegmentIndex]);
//如果 分段 小于 4个 那么 插入一个
if (seg.numberOfSegments < 4) {
//插入一个 标题分段
[seg insertSegmentWithTitle:@"小粉" atIndex:1 animated:YES];
//禁用第0段
[seg setEnabled:NO forSegmentAtIndex:0];
}
}
2.UISlider
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(10, 200, 200, 30)];
//设置表示的最小值 默认是 0.0
slider.minimumValue = 0.2;
//设置最大值
slider.maximumValue = 1.0;
//设置最小值一侧的轨道 颜色
slider.minimumTrackTintColor = [UIColor redColor];
//设置最大值一侧的轨道颜色
slider.maximumTrackTintColor = [UIColor purpleColor];
//设置 小白球的颜色 iOS7 无效了
// slider.thumbTintColor = [UIColor yellowColor];
//设置最小值一侧的图片
slider.minimumValueImage = [UIImage imageNamed:@"003.png"];
//设置最大值一侧的图片
slider.maximumValueImage = [UIImage imageNamed:@"002.png"];
//设置小白球的图片
//正常状态显示 003图片
[slider setThumbImage:[UIImage imageNamed:@"003.png"] forState:UIControlStateNormal];
//高亮状态显示 002
[slider setThumbImage:[UIImage imageNamed:@"002.png"] forState:UIControlStateHighlighted];
//设置默认值
slider.value = 1.0;
//设置 长按 滑块是否连续触发事件函数sliderClick:
slider.continuous = YES;
//YES 只要手指按住滑块 滑动就会触发函数sliderClick:
//NO 手指 长按滑块滑动时不会连续触发 停下来的时候才会触发函数sliderClick:
//使滑块 成为竖直方向 旋转 -90/270
slider.transform = CGAffineTransformMakeRotation(- M_PI_2);
//增加事件 控制 self.view 的透明度
[slider addTarget:self action:@selector(sliderClick:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];
[slider release];
}
- (void)sliderClick:(UISlider *)slider {
NSLog(@"value:%f",slider.value);
self.view.alpha = slider.value;
}
3.UISwitch
-(void)createSwitch{
//UISwitch:继承自UIControl,间接继承自UIView,事件驱动型控件
//UISwitch:默认size是79*27.frame设置size不起作用。
UISwitch *switch0 = [[UISwitch alloc]initWithFrame:CGRectMake(40, 100, 240, 50)];
switch0.backgroundColor = [UIColor yellowColor];
//1.添加事件
[switch0 addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];
//switchAction: 有手指的触摸事件才会触发
//通过transform 缩放
switch0.transform = CGAffineTransformScale(sw.transform, 2, 2);
//2.设置初始状态:默认是NO
switch0.on = YES;
//3.设置on状态的颜色/图片
switch0.onTintColor = [UIColor redColor];
//4.设置off状态的图片
[self.view addSubview:switch0];
[switch0 release];
//延迟 2s 让 self 执行 click:
[self performSelector:@selector(click:) withObject:sw afterDelay:2];
}
- (void)click:(UISwitch *) sw{
[sw setOn:YES animated:YES];
}
-(void)switchAction:(UISwitch *)switch0{
NSLog(@"switch.on = %d",switch0.on);
UIActivityIndicatorView *view = (UIActivityIndicatorView *)[self.view viewWithTag:100];
if (switch0.on) {
[view startAnimating];
}
else{
[view stopAnimating];
}
}
4. UIActivityIndicatorView
{
//活动指示器 菊花 风火轮
/*
UIActivityIndicatorViewStyleWhiteLarge,//大 白
UIActivityIndicatorViewStyleWhite,//白色
UIActivityIndicatorViewStyleGray,//灰色
*/
UIActivityIndicatorView *view = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
view.frame = CGRectMake(100, 100, 100, 100);
//开启动画 才会显示
[view startAnimating];
//2s之后关闭菊花
[self performSelector:@selector(click:) withObject:view afterDelay:2];
//设置 风火轮颜色
//view.color = [UIColor blueColor];
[self.view addSubview:view];
[view release];
//系统自带的网络加载菊花
//打开之后就会显示在 状态栏
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}
- (void)click:(UIActivityIndicatorView *)view {
if (view.isAnimating) {//判断是否正在转
[view stopAnimating];//停止转动 就会消失
}
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;//关闭网络风火轮
}
5. UIProgressView
{
//这是显示进入的视图
//进度条 ----表示下载进度
UIProgressView *progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 100, 300, 30)];
//设置进度
progressView.progress = 0;//
//设置走过进度颜色
// progressView.progressTintColor = [UIColor redColor];
//设置轨道颜色
// progressView.trackTintColor = [UIColor blackColor];
//定时器每隔 一段 时间 self 调用timerUpdate:
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerUpdate:) userInfo:progressView repeats:YES];
[self.view addSubview:progressView];
[progressView release];
}
- (void)timerUpdate:(NSTimer *)timer{
//获取 用户信息 userInfo
UIProgressView *view = (UIProgressView *)(timer.userInfo);
if (view.progress < 1.0) {
view.progress += 0.1;
}
if (view.progress == 1.0) {//下载完成弹出一个警告框
UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"" message:@"下载完成" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
[alertView show];
[alertView release];
//下载完成之后要销毁定时器
[timer invalidate];
}
}
6. UIStepper
-(void)createStepper{
//UIStepper:继承自UIControl.事件驱动型控件
//UIStepper:默认size是94*27.frame设置size不起作用
UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(40, 160, 100, 40)];
//1.设置步长:默认是1,必须大于0
stepper.stepValue = 10;
//2.设置当前值
stepper.value = 5;
//3.设置min/max:默认范围是0~100
stepper.minimumValue = 0;
stepper.maximumValue = 200;
//4.添加事件
[stepper addTarget:self action:@selector(stepperAction:) forControlEvents:UIControlEventValueChanged];
//5.设置值是否连续变化
stepper.continuous = NO;
[self.view addSubview:stepper];
[stepper release];
}
-(void)stepperAction:(UIStepper *)stepper{
NSLog(@"currentValue = %f",stepper.value);
//先获取到进度条
UIProgressView *pro = (UIProgressView *)[self.view viewWithTag:100];
//根据步进器的value调整progressView的进度
pro.progress = stepper.value/(stepper.maximumValue - stepper.minimumValue);
}
7.UIWebView
-(void)createWebView{
//UIWebView:继承自UIView
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(5, 64+5, self.view.frame.size.width - 10, self.view.frame.size.height-64-10)];
//加载网页
//1.网址的字符串:@"http://192.168.88.8"
NSString *str = @"http://192.168.88.8";
//2.str --> 网址url
NSURL *url = [NSURL URLWithString:str];
//3.url --> NSURLRequest
NSURLRequest *request = [NSURLRequest requestWithURL:url];
//4.webView加载请求
[webView loadRequest:request];
//5.调整页面
webView.scalesPageToFit = YES;
//6.代理
webView.delegate = self;
[self.view addSubview:webView];
[webView release];
}
#pragma mark - UIWebViewDelegate相关
-(void)webViewDidFinishLoad:(UIWebView *)webView{
NSLog(@"加载完成");
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{
NSLog(@"加载失败:%@",error);
}
8.UIAlertView
- (void)btnClick:(UIButton *)button {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"取钱" message:@"快点取,10s之后会吞卡哟" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"开始取钱", nil];
/*设置不同 类型的警告框
UIAlertViewStyleDefault = 0,
UIAlertViewStyleSecureTextInput,//有一个只输入密码的textField
UIAlertViewStylePlainTextInput,//有一个输入内容的textField
UIAlertViewStyleLoginAndPasswordInput//可以输入用户和密码的textField
*/
//alertView.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
alertView.tag = 1001;
[alertView show];
[alertView release];
}
#pragma mark - UIAlertViewDelegate协议
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
//判断 警告框的类型
if (alertView.alertViewStyle == UIAlertViewStyleDefault) {
if (alertView.tag == 1001) {
//点击的不是取消按钮
if (alertView.cancelButtonIndex != buttonIndex) {
//弹出一个要求输入用户名和密码的警告框
UIAlertView *view = [[UIAlertView alloc] initWithTitle:@"" message:@"加油!加油!..." delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"登陆", nil];
//设置类型
view.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
[view show];
//10s 之后 self 执行 viewClick:
[self performSelector:@selector(viewClick:) withObject:view afterDelay:10];
[view release];
}
}
}else if (alertView.alertViewStyle == UIAlertViewStyleLoginAndPasswordInput) {
//如果是 登陆用户名 密码的警告框
//获取两个textField 的地址
UITextField *name = [alertView textFieldAtIndex:0];
UITextField *passwd = [alertView textFieldAtIndex:1];
NSLog(@"name:%@ pass:%@",name.text,passwd.text);
}
}
//10s 之后 self 调用
- (void)viewClick:(UIAlertView *)view {
//用代码关闭警告框
[view dismissWithClickedButtonIndex:0 animated:YES];
}
9.UIActionSheet
//actionSheet:表单提示框
//第一个参数:标题
//第二个参数:代理 --> self
//第三个参数:取消按钮的标题
//第四个参数:需要谨慎操作的按钮可以高亮警告提示
//第五个参数:其他按钮的标题
//第六个参数:
UIActionSheet *sheet = [[UIActionSheet alloc]initWithTitle:@"分享至" delegate:self cancelButtonTitle:@"cancel" destructiveButtonTitle:@"谨慎删除" otherButtonTitles:@"新浪微博",@"微信朋友圈", nil];
//destructiveButtonTitle:当有危险操作的时候 可以设置,比如删除文件 ,删除操作是危险操作 这时这个按钮会显示 红色
sheet.destructiveButtonIndex = 1;
//显示
[sheet showInView:self.view];
[sheet release];
#pragma mark - UIActionSheetDelegate相关
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"buttonIndex = %d",buttonIndex);
if (buttonIndex == 1) {
//分享到新浪微博
NSLog(@"分享到新浪微博");
}
}
//取消按钮一般都在最下方
//索引值 是从上至下 开始 算 0----最后一个索引
10.基本概念
//创建textView
-(void)createTextView{
//UITextView:继承自UIScrollView,间接继承自UIView.
//意见反馈
//可编辑
UITextView *tView = [[UITextView alloc]initWithFrame:CGRectMake(10, 100, 300, 100)];
//1.设置文本颜色
[tView setTextColor:[UIColor lightGrayColor]];
//2.进入页面时键盘就是打开状态
// [tView becomeFirstResponder];
//3.设置键盘样式
tView.keyboardType = UIKeyboardTypeDefault;
//4.设置return按钮样式
tView.returnKeyType = UIReturnKeyGo;
//5.textView可以自动换行,不能设置默认提示文字
//6.是否允许编辑
tView.editable=YES;
//设置是否可以滚动
tView.scrollEnabled = YES;//NO不可以滚动
tView.delegate = self;
tView.text = @"请输入意见";
tView.tag = 200;
[self.view addSubview:tView];
[tView release];
}
//协议
-(void)textViewDidBeginEditing:(UITextView *)textView{
//清空原有内容
textView.text = nil;
//修改文本颜色
textView.textColor = [UIColor redColor];
}
#pragma mark - UITextViewDelegate
//是否可以进入编辑模式
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
NSLog(@"将要进入编辑模式");
return YES;//YES可以
}
- (void)textViewDidBeginEditing:(UITextView *)textView {
NSLog(@"已经进入编辑模式");
}
//是否可以结束编辑模式
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
NSLog(@"将要结束编辑模式的时候调用");
return YES;//YES可以结束
}
- (void)textViewDidEndEditing:(UITextView *)textView {
NSLog(@"已经结束编辑模式");
}
//只要textView输入内容 就会调用
- (void)textViewDidChange:(UITextView *)textView {
NSLog(@"textViewDidChange");
}
//修改textView的内容 或者 选中 就会调用textView
- (void)textViewDidChangeSelection:(UITextView *)textView {
NSLog(@"textViewDidChangeSelection");
}
//将要 把键盘上的数据输入到UITextView上的时候调用
//range:光标的位置
//text: 将要输入到UITextView里面的内容 还没有输入到里面
//返回YES 可以输入到UITextView里面
//NO 不可以输入到里面
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
NSLog(@"range:%@",NSStringFromRange(range));
NSLog(@"将要输入:text:%@",text);
return YES;
}