#import "AppDelegate.h"
AppDelegate () <UIActionSheetDelegate,UIAlertViewDelegate,
UITextViewDelegate>{
UILabel *_showLabel;
}
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
_window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
[_window setBackgroundColor:[UIColor whiteColor]];
_showLabel = [[UILabel alloc]initWithFrame:
CGRectMake(100, 200, 100, 40)];
[_window addSubview:_showLabel];
//======================================================
//1.UISwitch
[self createSwitch];
//2.滑块
[self createSlider];
//3.进度条
[self CreateProgressView];
//4.步数器
[self createStepper];
//5.活动指示框
[self createActivity];
//6.多段选择器
[self createSegmentControl];
//7.表单视图
// [self createActionSheet];
//8.警告框
//[self createAlertView];
//9.文本输入框
[self createUITextView];
[_window makeKeyAndVisible];
return YES;
}
#pragma mark -创建文本输入视图
- (void)createUITextView{
//UITextView继承自UIScrollView
//UITextView和UITextField的功能基本一致
//UITextField的属性和方法和UITextView都有类似的属性和方法
//区别1:UITextField只能一行显示文字,UITextView可以多行显示
//并且可以滚动,
//区别2:UITextField有占位文字和密文显示功能,但是UITextView没有
//1.创建文本输入视图的对象
UITextView *textView = [[UITextView alloc]
initWithFrame:CGRectMake(100, 350, 200, 100)];
//2.显示在界面上
[_window addSubview:textView];
//3.设置背景颜色
textView.backgroundColor = [UIColor lightGrayColor];
//4.设置文字
textView.text = @"这是一个textView";
//5.设置是否可以编辑(默认是yes)
//NO就是纯展示文字的控件
//textView.editable = YES;
//6.关闭选中文字的功能;
//textView.selectable = NO;
//7.设置键盘类型textField也有这个属性;
[textView setKeyboardType:UIKeyboardTypeTwitter];
//8.设置return按钮的样式
[textView setReturnKeyType:UIReturnKeyDefault];
//9.设置代理
textView.delegate = self;
}
#pragma mark -UITextView协议方法
//使用键盘输入文字的时候实时调用这个方法;
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:
(NSRange)range replacementText:(NSString *)text{
NSLog(@"%@",text);
if ([text isEqualToString:@"\n"]) {
[textView resignFirstResponder];
}
return YES;
}
//已经开始编辑
- (void)textViewDidBeginEditing:(UITextView *)textView{
NSLog(@"已经开始编辑");
}
//已经结束编辑
- (void)textViewDidEndEditing:(UITextView *)textView{
NSLog(@"已经结束编辑");
}
#pragma mark -创建警告框
- (void)createAlertView{
//1.创建警告对象
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"警告" message:@"没有联网,请联网"
delegate:self cancelButtonTitle:@"取消"
otherButtonTitles:@"确定", nil];
//2.显示在界面上
[alert show];
//3.
}
#pragma mark -警告框协议方法
//当警告框上的按钮被点击的时候会调用这个方法;
//参数1:委托
//参数2:被点击的按钮的下标
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%lu",buttonIndex);
if (buttonIndex == 0) {
NSLog(@"点击了取消键");
}else{
NSLog(@"确定删除!!");
}
}
#pragma mark -表单视图协议方法
//当表单上的按钮被点击的时候会调用这个方法
//参数1:委托
//参数2:被点击的按钮的下标(当前表单上所有的按钮从上到下一次增加)
- (void)actionSheet:(UIActionSheet *)actionSheet
ckedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%lu",buttonIndex);
//根据不同的按钮点击做出不一样的反应
switch (buttonIndex) {
case 0:{
break;
}
case 1:{
break;
}
case 2:{
break;
}
case 3:{
break;
}
case 4:{
break;
}
default:
break;
}
}
#pragma mark -创建表单视图
- (void)createActionSheet{
//1.创建一个表单视图对象
//UIActionSheet : UIView
//参数1:设置标题
//参数2:设置代理
//参数3:最下面那个独立按钮的标题(可以是取消也可以是保存等操作)
//参数4:最上面那个红色按钮的标题(可以写为nil)
//参数5:中间普通按钮的标题,其他按钮标题;
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"是否观看动漫?" delegate:self
cancelButtonTitle:@"保存"
destructiveButtonTitle:@"标题"
otherButtonTitles:@"其他标题1",@"其他标题2", nil];
//2.显示在界面上
//[actionSheet showInView:_window];
}
#pragma mark -创建多段选择器
- (void)createSegmentControl{
//1.创建多段选择器对象
//UISegmentedControl:UIControl
//参数:是一个数组(当前分段选择器中所有分段的标题的数组)
UISegmentedControl *segmentControl = [[UISegmentedControl alloc]
initWithItems:@[@"吸血鬼骑士",
@"犬夜叉",@"纯情罗曼史"]];
//2.设置frame
segmentControl.frame = CGRectMake(0, 80, 375, 40);
//3.显示在界面上
[_window addSubview:segmentControl];
//4.当前选中的分段(核心属性)
//设置选中分段的下标;
segmentControl.selectedSegmentIndex = 0;
//5.添加事件
[segmentControl addTarget:self action:@selector(segmentOnclicked:)
forControlEvents:UIControlEventValueChanged];
//6.获取当前分段数
NSLog(@"%lu",segmentControl.numberOfSegments);
//7.插入一个文字分段
[segmentControl insertSegmentWithTitle:@"画江湖" atIndex:0
animated:YES];
//8.插入一个图片分段
//imageWithRenderingMode:设置图片的渲染模式
//图片不能正常显示的时候一般就去设置图片的渲染模式为
//UIImageRenderingModeAlwaysOriginal
[segmentControl insertSegmentWithImage:
[ [UIImage imageNamed:@"player_up_1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
atIndex:1 animated:YES];
//9.移除指定下标的分段(下标不可以越界);
[segmentControl removeSegmentAtIndex:1 animated:YES];
//10.移除所有的分段
//[segmentControl removeAllSegments];
//11.改变分段的标题
[segmentControl setTitle:@"不良人" forSegmentAtIndex:0];
//12.拿到指定下标分段的文字
NSString *titile = [segmentControl titleForSegmentAtIndex:1];
NSLog(@"%@",titile);
//13.设置填充颜色
[segmentControl setTintColor:[UIColor colorWithRed:100/255.0f
green:179/255.0f blue:50/255.0f alpha:1]];
}
#pragma mark -点击分段事件
-(void) segmentOnclicked:(UISegmentedControl *)segment{
NSLog(@"%ld",(long)segment.selectedSegmentIndex);
}
#pragma mark -创建活动指示器
- (void)createActivity{
// [_window setBackgroundColor:[UIColor Color]];
//1.创建活动指示器对象
UIActivityIndicatorView *activity = [[UIActivityIndicatorView
alloc]initWithActivityIndicatorStyle:
UIActivityIndicatorViewStyleWhiteLarge];
//设置frame
activity.frame = CGRectMake(100, 300, 100, 100) ;
[_window addSubview:activity];
//2.活动的时候才可以看到活动指示器
[activity startAnimating];
//3.让活动指示器停止
[activity stopAnimating];
}
#pragma mark -创建步数器
- (void)createStepper{
//1.创建步数器对象
//UIStepper:UIControl
UIStepper *stepper = [[UIStepper alloc] initWithFrame:
CGRectMake(100, 250, 0, 0)];
//2.显示在窗口
[_window addSubview:stepper];
//3.步进值(默认是0)
stepper.value = 1;
_showLabel.text = [NSString stringWithFormat:
@"%.2lf",stepper.value];
//4.添加事件
//按stepper的加和减的按钮,都会自动的改变stepper的value的值
[stepper addTarget:self action:@selector(stepperOnClicked:) forControlEvents:
UIControlEventValueChanged];
//5.步进值(每按一次加或减变化的值,默认是1)
stepper.stepValue = 10;
//6.设置最大值和最小值;
stepper.maximumValue = 10;
stepper.minimumValue = -10;
//7.设置填充颜色
stepper.tintColor = [UIColor redColor];
}
#pragma mark -步数器事件
- (void)stepperOnClicked:(UIStepper *)stepper{
//使用stepper最新的值去更新label的value
_showLabel.text = [NSString stringWithFormat:@"%.2lf",stepper.value];
}
#pragma mark -UIProgressView进度条
- (void)CreateProgressView{
//1.创建进度条对象
//UIProgressViewStyleDefault//颜色是灰色的
//UIProgressViewStyleBar//颜色是白色的
UIProgressView *progressView = [[UIProgressView alloc]initWithProgressViewStyle:
UIProgressViewStyleDefault];
//2.设置frame;(设置高度无效)
progressView.frame = CGRectMake(100, 200, 200, 50);
progressView.tag = 77;
//3.进度(核心属性)(0-1)
progressView.progress = 0.5;
//4.设置从开始到当前进度位置,进度条的颜色
progressView.progressTintColor = [UIColor cyanColor];
//5.从进度位置到结束,进度条的颜色
progressView.trackTintColor = [UIColor redColor];
//6.设置进度带动画效果;
[progressView setProgress:0.2 animated:YES];
[_window addSubview:progressView];
}
#pragma mark -UISlider
- (void)createSlider{
//1.创建一个滑块对象;
//UISlider:UIControl:UIView;
UISlider *slider = [[UISlider alloc]initWithFrame:
CGRectMake(100, 150, 200, 50)];
//2.显示在界面上
[_window addSubview:slider];
//3.当前滑块位置对应的值;(默认的值是0-1)
slider.value = 0.5f;
//4.设置滑块的最小值和最大值
//最小值默认是0
slider.minimumValue = 1;
//最大值默认是1
slider.maximumValue = 10;
slider.value = 5;
//5.添加事件;
//能添加的事件只有:UIControlEventValueChanged
[slider addTarget:self action:@selector(sliderChange:)
forControlEvents:UIControlEventValueChanged];
//6.设置slider最左边显示的图片(一般不用)
[slider setMinimumValueImage:[UIImage imageNamed:@"player_right_1"]];
//7.把滑块设置为图片滑块;(常用)
[slider setThumbImage:[UIImage imageNamed:@"player_down_1"]
forState:UIControlStateNormal];
[slider setThumbImage:[UIImage imageNamed:@"player_up_1"]
forState:UIControlStateHighlighted];
//8.滑条和滑块的颜色
//设置最左端到滑块部分的填充颜色;
[slider setMinimumTrackTintColor:[UIColor yellowColor]];
//滑块到最右端的填充颜色
[slider setMaximumTrackTintColor:[UIColor cyanColor]];
//滑块的颜色
[slider setThumbTintColor:[UIColor brownColor]];
//9.设置滑块的值是否实时(连续)改变
slider.continuous = YES;
}
//当滑块滑动的时候实时调用这个方法;
- (void)sliderChange:(UISlider *) slider{
NSLog(@"%f",slider.value);
//改变进度条的进度
UIProgressView *progressView = (UIProgressView *)[_window viewWithTag:77];
progressView.progress = slider.value / (slider.maximumValue -
slider.minimumValue);
}
#pragma mark - UISwitch
- (void)createSwitch{
//1.创建开关对象;
//UISwitch:UIControl:UIView
UISwitch *switch1 = [[UISwitch alloc]initWithFrame:
CGRectMake(100, 30, 0, 0)];
//显示在界面上
[_window addSubview:switch1];
//2.开关的核心属性:开关关闭状态和开状态
//yes:开 NO:关(默认);
//设置开关状态;
[switch1 setOn:YES];
//获取开关的状态;
BOOL ret = [switch1 isOn];
if (ret) {
NSLog(@"开启");
}else{
NSLog(@"关闭");
}
//3.给开关添加事件
//参数1:响应消息的对象
//参数2:消息(可以不带参,也可以单参,带参只能带开关本身)
//参数3:事件
[switch1 addTarget:self action:@selector(switchOn:)
forControlEvents:UIControlEventValueChanged];
//4.设置开关开启状态的填充颜色;
switch1.onTintColor = [UIColor yellowColor];
//5.设置关闭状态的颜色;
switch1.tintColor = [UIColor redColor];
//6.设置开关滑块的颜色
switch1.thumbTintColor = [UIColor cyanColor];
}
- (void)switchOn:(UISwitch *)switch1{
//每次点击开关都创建表单;
[self createActionSheet];
//每次触摸开关,开关的状态都会发生改变
if (switch1.on) {
NSLog(@"开关开启");
}else{
NSLog(@"开关关闭");
}
}
@end