//
// AppDelegate.m
// 01 - 其他控件集合
//
// Created by 余婷 on 16/4/11.
// Copyright (c) 2016年 余婷. All rights reserved.
//
#import "AppDelegate.h"
@interface AppDelegate ()<UIActionSheetDelegate, UIAlertViewDelegate, UITextViewDelegate>{
UILabel * _showLabel;
}
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = [[UIViewController alloc] init];
self.window.rootViewController.view.userInteractionEnabled = NO;
//创建一个label
_showLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 150, 100, 40)];
[self.window addSubview:_showLabel];
//======================================
//1.开关
// [self creatSwitch];
//2.滑块
// [self creatSlider];
//3.进度条
// [self creatProgressView];
//4.步进器
// [self creatStepper];
//5.活动指示器
/// [self creatActivity];
//6.多段选择器
[self creatSegmentedControl];
//7.表单视图
//[self creatActionSheet];
//8.警告框
// [self creatAlertView];
//9.文本输入视图
//[self creatTextView];
[self.window makeKeyAndVisible];
return YES;
}
#pragma mark - UITextView
- (void)creatTextView{
//UITextView的功能和UITextField的功能基本一致,之前很多的UITextField的属性和方法,UITextView都有类似或者一样的属性和方法
//区别:1.textFiled只能一行显示文字;textView可以多行显示并且可以滚动。 2.textFiled有占位文字和密文显示功能,但是textView没有的
//1.创建文本输入视图的对象
//UITextView : UIScrollView
UITextView * textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 300, 200, 100)];
//2.显示在界面上
[_window addSubview:textView];
//3.设置背景颜色
textView.backgroundColor = [UIColor lightGrayColor];
//4.设置文字
textView.text = @"askfhaslhfjashaasldkfhaskhflkahslkdfhaksjhfdklashfdlkahslkdfhaklshdfklashdfkjasldfhajklshfklashjdjfhasklfhasjkfdhasklhdfklashfkashkljaskdfhaskldfhlaskdhflkashdfklhaskldfhklsahdflkashkldfhaskldhfaskjhdflkdashjdfkaljshdflkashfkjlsahdfkhwiaeyfiashfkashfkasjh";
//5.设置是否可以编辑(默认是:YES)
//如果设置成NO,textView就是纯展示文字的控件
textView.editable = YES;
//6.设置是否可以选中文字(默认是:YES)
//设置成NO:关闭选中文字的功能
textView.selectable = YES;
//7.设置键盘的类型(textField也有这个属性)
// UIKeyboardTypeDefault,
// UIKeyboardTypeASCIICapable,
// UIKeyboardTypeNumbersAndPunctuation,
// UIKeyboardTypeURL,
// UIKeyboardTypeNumberPad,
// UIKeyboardTypePhonePad,
// UIKeyboardTypeNamePhonePad,
// UIKeyboardTypeEmailAddress,
// UIKeyboardTypeDecimalPad
// UIKeyboardTypeTwitter
// UIKeyboardTypeWebSearch
// UIKeyboardTypeAlphabet
[textView setKeyboardType:UIKeyboardTypeDefault];
//8.设置return按钮的样式(textField也有这个属性)
// UIReturnKeyDefault,
// UIReturnKeyGo,
// UIReturnKeyGoogle,
// UIReturnKeyJoin,
// UIReturnKeyNext,
// UIReturnKeyRoute,
// UIReturnKeySearch,
// UIReturnKeySend,
// UIReturnKeyYahoo,
// UIReturnKeyDone,
// UIReturnKeyEmergencyCall,
[textView setReturnKeyType:UIReturnKeySend];
//9.设置代理
textView.delegate = self;
}
//MARK:协议方法
//使用键盘输入文字的时候实时调用这个方法
- (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 - UIAlertView
- (void)creatAlertView{
//1.创建警告框对象
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"标题" message:@"信息" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
//2.显示在界面上
[alert show];
}
//MARK:协议方法
//当警告框上的按钮被点击的时候会调用这个方法
//参数1:委托
//参数2:被点击的按钮的下标
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%lu", buttonIndex);
if (buttonIndex == 1) {
NSLog(@"确定删除");
}
}
#pragma mark - UIActionSheet
- (void)creatActionSheet{
//1.创建表单视图对象
//UIActionSheet:UIView
//参数1:标题
//参数2:设置代理
//参数3:最下面那个独立按钮的标题
//参数4:最上面那个红色按钮的标题
//参数5:中间普通按钮的标题
UIActionSheet * sheet = [[UIActionSheet alloc] initWithTitle:@"标题" delegate:self cancelButtonTitle:@"保存" destructiveButtonTitle:@"红色按钮" otherButtonTitles:@"111",@"222",@"333", nil];
//2.显示在界面上
[sheet showInView:_window];
}
//MARK:协议方法
//当表单上的按钮被点击的时候会调用这个方法
//参数1:委托
//参数2:被点击的按钮的下标(当前表单上所有的按钮从上往下下标依次增加)
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@"%lu", buttonIndex);
//根据不同的按钮点击,做出不一样的响应
switch (buttonIndex) {
case 0:{
break;
}
case 1:{
break;
}
case 2:{
break;
}
case 3:{
break;
}
default:
break;
}
}
#pragma mark - UISegmentedControl
- (void)creatSegmentedControl{
//1.创建多段选择器对象
//UISegmentedControl : UIControl : UIView
//参数:当前分段选择中所有分段的标题的数组
UISegmentedControl * segment = [[UISegmentedControl alloc] initWithItems:@[@"海贼王",@"火影忍者",@"死神"]];
//2.设置frame(宽度和高度都有效)
segment.frame = CGRectMake(100, 320, 250, 30);
//3.显示在界面上
[self.window addSubview:segment];
//4.当前选中的分段(核心属性)
//设置选中分段的下标
segment.selectedSegmentIndex = 0;
//5.添加事件
[segment addTarget:self action:@selector(segment:) forControlEvents:UIControlEventValueChanged];
//6.获取当前分段数
NSLog(@"%lu", segment.numberOfSegments);
//7.插入一个文字分段
[segment insertSegmentWithTitle:@"死亡笔记" atIndex:0 animated:YES];
//8.插入一张图片分段
//imageWithRenderingMode:设置图片的渲染模式(图片不能正常显示的时候,一般就去设置图片的渲染模式为UIImageRenderingModeAlwaysOriginal)
[segment insertSegmentWithImage:[[UIImage imageNamed:@"luffy"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] atIndex:1 animated:YES];
//9.移除指定下标的分段(下标不可以越界)
//- (void)removeSegmentAtIndex:(NSUInteger)segment animated:(BOOL)animated;
[segment removeSegmentAtIndex:4 animated:YES];
//10.移除所有的分段
//- (void)removeAllSegments;
//[segment removeAllSegments];
//11.设置指定下标的分段的title(下标不可以越界)
[segment setTitle:@"妖精的尾巴" forSegmentAtIndex:0];
//12.拿到指定下标分段的文字
//- (NSString *)titleForSegmentAtIndex:(NSUInteger)segment
NSString * title = [segment titleForSegmentAtIndex:0];
NSLog(@"%@",title);
//13.设置填充颜色
[segment setTintColor:[UIColor orangeColor]];
}
- (void)segment:(UISegmentedControl *)segment{
NSLog(@"%ld", (long)segment.selectedSegmentIndex);
}
#pragma mark - UIActivityIndicatorView
- (void)creatActivity{
//1.创建活动指示器对象
//UIActivityIndicatorView : UIView
// UIActivityIndicatorViewStyleWhiteLarge,
// UIActivityIndicatorViewStyleWhite,
// UIActivityIndicatorViewStyleGray
UIActivityIndicatorView * activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
//设置frame
//frame中大小无效
activity.frame = CGRectMake(100, 260, 0, 0);
//显示在界面上(活动指示器只有在动的时候才能看得见)
[self.window addSubview:activity];
//2.让活动指示器动
[activity startAnimating];
//3.让活动指示器停止
// [activity stopAnimating];
}
#pragma mark - UIStepper
- (void)creatStepper{
//1.创建步进器对象
//UIStepper : UIControl : UIView
//宽度和高度无效
UIStepper * stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 200, 0, 0)];
//显示在界面上
[self.window addSubview:stepper];
//2.步进器的值(默认是0,范围是0 - 100)
stepper.value = 98;
_showLabel.text = [NSString stringWithFormat:@" %.2lf", stepper.value];
//3.添加事件
//按stepper的加和减的按钮,都会自动改变stepper的value的值
[stepper addTarget:self action:@selector(stepper:) forControlEvents:UIControlEventValueChanged];
//4.步进值(每按一次加和减变化的值,默认是1;只能是正数)
stepper.stepValue = 0.5;
//5.设置最大值和最小值
stepper.maximumValue = 10;
stepper.minimumValue = - 10;
//6.设置填充颜色
stepper.tintColor = [UIColor redColor];
}
- (void)stepper:(UIStepper *)stepper{
//使用stepper最新的值,去更新label的显示
_showLabel.text = [NSString stringWithFormat:@"%.2lf", stepper.value];
}
#pragma mark - UIProgressView
- (void)creatProgressView{
//1.创建进度条对象
//UIProgressView : UIView
// UIProgressViewStyleDefault, //颜色是灰色的
// UIProgressViewStyleBar //颜色是白色
UIProgressView * progressView = [[UIProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleDefault];
//2.设置frame
//设置高度无效
progressView.frame = CGRectMake(100, 150, 200, 0);
//显示在界面上
[self.window addSubview:progressView];
//3.进度(核心属性)(0 - 1)
progressView.progress = 0.5;
//设置tag值
progressView.tag = 100;
//4.设置从开始到当前进度位置,进度条的填充颜色
progressView.progressTintColor = [UIColor greenColor];
//5.从进度位置到结束,进度条的填充颜色
progressView.trackTintColor = [UIColor orangeColor];
//6.设置进度带动画效果
//- (void)setProgress:(float)progress animated:(BOOL)animated
[progressView setProgress:0.2 animated:YES];
}
#pragma mark - UISlider
- (void)creatSlider{
//1.创建滑块对象
//UISlider : UIControl : UIView
UISlider * slider = [[UISlider alloc] initWithFrame:CGRectMake(100, 100, 200, 50)];
//显示在界面上
[self.window addSubview:slider];
//3.设置滑块的最小值和最大值
//最小值(默认是0)
slider.minimumValue = 10;
//最大值(默认是1)
slider.maximumValue = 100;
//2.当前滑块位置对应的值(默认值的范围是0 - 1)
slider.value = 50.0f;
//4.添加事件
//能添加的事件只有:UIControlEventValueChanged
[slider addTarget:self action:@selector(slider:) forControlEvents:UIControlEventValueChanged];
//5.设置slider最左边显示的图片(一般不用)
[slider setMinimumValueImage:[UIImage imageNamed:@"luffy"]];
//6.设置滑块图片(常用)
//给滑块正常状态设置图片
[slider setThumbImage:[UIImage imageNamed:@"slider"] forState:UIControlStateNormal];
//给滑块高亮状态设置图片
[slider setThumbImage:[UIImage imageNamed:@"luffy"] forState:UIControlStateHighlighted];
//7.滑条和滑块的颜色
//最小值到滑块部分的填充颜色
// @property(nonatomic,retain) UIColor *minimumTrackTintColor
[slider setMinimumTrackTintColor:[UIColor yellowColor]];
//滑块到最大值部分的填充颜色
// @property(nonatomic,retain) UIColor *maximumTrackTintColor
[slider setMaximumTrackTintColor:[UIColor redColor]];
//滑块的填充颜色
// @property(nonatomic,retain) UIColor *thumbTintColor
//8.设置滑块的值是否实时(连续)改变(默认:YES)
slider.continuous = NO;
}
//当滑块滑动的时候实时调用这个方法
- (void)slider:(UISlider *)slider{
NSLog(@"%f", slider.value);
//改变进度条的进度
UIProgressView * progressView = (UIProgressView *)[_window viewWithTag:100];
CGFloat progress = slider.value / (slider.maximumValue - slider.minimumValue);
[progressView setProgress:progress animated:YES];
}
#pragma mark - UISwitch
- (void)creatSwitch{
//1.创建开关对象
//设置frame只有坐标有效
//UISwitch : UIControl : UIView
UISwitch * sw = [[UISwitch alloc] initWithFrame:CGRectMake(100, 30, 10, 10)];
//显示在界面上
[self.window addSubview:sw];
//2.开关关闭状态(开\关) - 核心属性
//YES:开关 NO:关(默认)
//设置开关状态
[sw setOn:YES];
//获取开关状态
BOOL ret = [sw isOn];
if (ret) {
NSLog(@"开启");
}else{
NSLog(@"关闭");
}
//3.给开关添加事件
//参数1:效应消息的对象
//参数2:消息 (可以不带参,也可以带参;如果带参只能带一个参数,并且这个参数的实参就是添加事件的开关本身)
//参数3:事件(UIControlEventValueChanged)
[sw addTarget:self action:@selector(switchOn:) forControlEvents:UIControlEventValueChanged];
//4.设置开关开启状态的填充颜色
sw.onTintColor = [UIColor yellowColor];
//5.设置关闭状态的填充颜色
sw.tintColor = [UIColor redColor];
//6.设置开关上的滑块的颜色
sw.thumbTintColor = [UIColor blueColor];
}
- (void)switchOn:(UISwitch *)sw{
//每次点击开关都创建表单
[self creatActionSheet];
//每次触摸开关,开关的状态都会发生改变
if (sw.on) {
NSLog(@"开关开启");
}else{
NSLog(@"开关关闭");
}
}
@end
网友评论