IOS开发之UI中的其余小控件


#import "AppDelegate.h"数组


@interface AppDelegate () <UIActionSheetDelegate,UIAlertViewDelegate,app

UITextViewDelegate>{ide

    UILabel *_showLabel;动画

}spa


@end .net


@implementation AppDelegate3d



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {代理

    // Override point for customization after application launch.orm

     _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

    

    //UITextViewUITextField的功能基本一致

    //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的加和减的按钮,都会自动的改变steppervalue的值

    [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最新的值去更新labelvalue

    _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

相关文章
相关标签/搜索