iOS基础控件的学习
1.UIControl 控制视图的事件处理(控件中会使用到)
基于触摸 事件处理:
UIControlEventTouchDown 用户按下时触发
UIControlEventTouchDownRepeat 点击计数大于1时触发
UIControlEventTouchDragInside 当触摸在控件内拖动时触发
UIControlEventTouchDragOutside 当触摸在控件之外拖动时触发
UIControlEventTouchDragEnter 当触摸从控件之外拖动到控件内部时触发
UIControlEventTouchDragExit 当触摸从控件之内拖动到控件外部时触发
UIControlEventTouchUpInside 控件之内触摸抬起时触发
UIControlEventTouchUpOutside 控件之外触摸抬起时触发
UIControlEventTouchCancel 触摸取消事件,设备被上锁(锁屏)或者电话呼叫打断
UIControlEventTouchValueChanged 当控件的值发生改变时。用于滑块、分段控件等控件(UISliser UISegmentControl UIPageControl )
基于编辑 事件处理:
UIControlEventEditingDidBegin 文本控件中开始编辑时
UIControlEventEditingChanged 文本控件中的文本被改变时
UIControlEventEditingDidEnd 文本控件中编辑结束时
UIControlEventEditingDidOnExit 文本控件内通过按下回车键结束编辑时
UIControlEventAllTouchEvents 所有触摸事件
UIControlEventAllEditingEvents 文本编辑的所有事件
UIControlEventAllEvents 所有事件
2.button
巧用button的selected方法,可以把按钮设置成开关一样。
if ( button.selected ) {
button.selected = NO;
}else{
button.selected = YES;
}
3.UIImageView
在imageView上加子控件时,记得为imageview设置一个属性,imageView.userInteractionEnable = YES;
4.UITextField
常用属性:
placeholder 提示用户输入内容文本
borderStyle 设置风格,默认没有风格,需要设置
clearsOnBeginEditing 用户编辑时是否clear内容,默认为NO
adjustsFontSizeToFitWidth 自适应调整字体大小,默认为NO
(UIImage)background 设置背景,需要将textField实例的风格设置为None
(UIImage)disabledBackground 设置textField不可用时的背景图片
(Bool)editing 设置是否可编辑
clearButtonMode 清除按钮的模式,默认不出现
leftView 自定义左视图
leftViewMode 自定义左视图出现的模式
inputView 不用系统键盘,自定义键盘
inputAccessoryView 系统键盘和自定义键盘共存
autocapitalizationType 自动大写类型
autocorrectionType 检查拼写是否正确
keyboardType 修改键盘类型
returnKeyType 修改返回类型
secureTextEntry 是否安全输入,比如用户输入密码
太麻烦了,直接上代码:
#import “ViewController.h”
#import “AlertView.h”
@interface ViewController ()<UIAlertViewDelegate,UIActionSheetDelegate,UITextFieldDelegate>
@end
@implementation ViewController
– (void)viewDidLoad {
[superviewDidLoad];
// 1.AlertView
UIButton *button1 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
button1.frame =CGRectMake(10, 60, 140, 40);
button1.backgroundColor = [UIColorredColor];
[button1 setTitle:@”show Alert View”forState:UIControlStateNormal];
[button1 addTarget:selfaction:@selector(showAlertView)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:button1];
// 2.ActionSheet
UIButton *button2 = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
button2.frame =CGRectMake(160, 60, 140, 40);
button2.backgroundColor = [UIColorredColor];
[button2 setTitle:@”show Action Sheet”forState:UIControlStateNormal];
[button2 addTarget:selfaction:@selector(showActionView)forControlEvents:UIControlEventTouchUpInside];
[self.viewaddSubview:button2];
// 3.进度环
UIActivityIndicatorView *activityView = [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityView.center =CGPointMake(60, 160);
activityView.color = [UIColorredColor];
activityView.hidesWhenStopped =NO;//停止转动后是否消失,,默认是YES
[activityViewstartAnimating];
[self.viewaddSubview:activityView];
[NSTimer scheduledTimerWithTimeInterval:3 target:selfselector:@selector(timerTest:)userInfo:activityView repeats:NO];
// 4.滑动条UISlider
UISlider *slider = [[UISlideralloc]initWithFrame:CGRectMake(30, 210, 230, 20)];//高度是默认的,你设置的没用,没法设置它
slider.value = 0.5; //设置当前值
slider.maximumValue = 1; //设置*大值
slider.minimumValue = 0; //设置*小值
slider.tintColor = [UIColorredColor];//设置颜色
[slider addTarget:selfaction:@selector(sliderAction:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:slider];
[NSTimer scheduledTimerWithTimeInterval:1 target:selfselector:@selector(sliderTest:)userInfo:slider repeats:YES];
// 5.分段控件UISegmentControl
NSArray *array = @[@”aaa”,@”bbb”,@”ccc”];
UISegmentedControl *segmented = [[UISegmentedControlalloc]initWithItems:array];
segmented.frame =CGRectMake(50, 260,300,40);
segmented.selectedSegmentIndex = 1;
segmented.tintColor = [UIColorredColor];//设置颜色
[segmented addTarget:selfaction:@selector(segmentAction:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:segmented];
[NSTimer scheduledTimerWithTimeInterval:3 target:selfselector:@selector(segmentTest:)userInfo:segmented repeats:YES];
// 6.UIPageControl分页控制(通常与UIScrollView连用,提示用户当前显示的页数)
UIPageControl *pageControl = [[UIPageControlalloc]initWithFrame:CGRectMake(60, 320, 100, 40)];
// pageControl.backgroundColor = [UIColor grayColor];//灰色背景
pageControl.numberOfPages = 10;
pageControl.currentPage = 1;
pageControl.currentPageIndicatorTintColor = [UIColorredColor];
pageControl.PageIndicatorTintColor = [UIColorgrayColor];
[pageControl addTarget:selfaction:@selector(pageAction:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:pageControl];
// 7.UITextField
UITextField *tf = [[UITextFieldalloc]initWithFrame:CGRectMake(60, 380, 200, 40)];
tf.tag = 110;
tf.delegate =self;
tf.textColor = [UIColorredColor];
tf.placeholder =@”用来提示用户”;
// tf.adjustsFontSizeToFitWidth = YES;
// tf.clearsOnBeginEditing = YES;//在编辑之前先清空内容
tf.clearButtonMode =UITextFieldViewModeWhileEditing;//当正在编辑的时候显示*右边的清除按钮
tf.borderStyle =UITextBorderStyleRoundedRect;//圆角
// tf.keyboardType = UIKeyboardTypeNumberPad;//设置键盘type。数字键盘
// tf.secureTextEntry = YES;//设置密码
tf.returnKeyType =UIReturnKeySearch;//设置键盘回车键的类型(搜索)
//自定义左视图
UIView *view = [[UIViewalloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
view.backgroundColor = [UIColorredColor];
tf.leftView = view;
tf.leftViewMode =UITextFieldViewModeAlways;
// 自定义系统键盘
UIView *scView = [[UIViewalloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
scView.backgroundColor = [UIColorredColor];
tf.inputAccessoryView = scView;
// tf.inputView = scView;
[self.viewaddSubview:tf];
// 8.UILable
UILabel *label = [[UILabelalloc]initWithFrame:CGRectMake(60, 450, 200, 40)];
label.text =@”abndnfkdabndnfkdfabndnfkdfabndnfkdff”;//文本
label.textColor = [UIColorredColor];//文本颜色
label.textAlignment =NSTextAlignmentCenter;//对齐方式
label.backgroundColor = [UIColorwhiteColor];//背景色
// label.shadowColor = [UIColor blueColor];//偏移颜色
// label.shadowOffset = CGSizeMake(-1, 1);//偏移量
// label.font = [UIFont fontWithName:<#(NSString *)#> size:<#(CGFloat)#>]//字体
label.font = [UIFontsystemFontOfSize:14];
label.numberOfLines = 1;//*多显示几行
label.lineBreakMode =NSLineBreakByTruncatingMiddle;//文本太多显示不完时,在哪里打省略号
[label sizeToFit];根据文本自动调整label的宽度和高度
[self.viewaddSubview:label];
}
#pragma mark – 7.UITextFieldDelegate
– (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
NSLog(@”ShouldBeginEditing”);
// [textField becomeFirstResponder];
return YES;
}
– (void)textFieldDidBeginEditing:(UITextField *)textField{
NSLog(@”DidBeginEditing”);
}
– (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
NSLog(@”ShouldEndEditing”);
return YES;
}
– (void)textFieldDidEndEditing:(UITextField *)textField{
NSLog(@”DidEndEditing”);
}
– (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
NSLog(@”houldChangeCharactersInRange”);
NSLog(@”::%@”,string);
return YES;
}
– (BOOL)textFieldShouldClear:(UITextField *)textField{
NSLog(@”ShouldClear”);
return YES;
}
– (BOOL)textFieldShouldReturn:(UITextField *)textField{
NSLog(@”搜索。。。”);
// 执行用户按下键盘上的return时
[textFieldendEditing:YES];
return YES;
}
#pragma mark – 6.pageControl
-(void)pageAction:(UIPageControl*)pageControl{
NSLog(@”page Control:%ld”,(long)pageControl.currentPage);
}
#pragma mark – 5.UISlider
-(void)segmentAction:(UISegmentedControl*)segment{
NSLog(@”segment value:%ld”,(long)segment.selectedSegmentIndex);
}
//定时器设置的,将会每三秒执行一次
-(void)segmentTest:(NSTimer*)timer{
UISegmentedControl *segment = [timeruserInfo];
[segment insertSegmentWithTitle:@”add”atIndex:1 animated:YES];
}
#pragma mark – 4.滑动条,一秒钟切换当前值
-(void)sliderTest:(NSTimer*)timer{
UISlider *slider = [timer userInfo];
[slidersetValue:0.8 animated:YES];
}
//值发生改变 事件
-(void)sliderAction:(UISlider*)slider{
NSLog(@”slider.value:%f”,slider.value);
}
#pragma mark – 3.定时器,三秒钟后停止activity的转动
-(void)timerTest:(NSTimer*)timer{
UIActivityIndicatorView *activityview = [timeruserInfo];
[activityviewstopAnimating];
}
#pragma mark – 1.button1:AlertView
int identifier = 1;
-(void)showAlertView{
// UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@”Alert View” message:@”message” delegate:nil cancelButtonTitle:@”sure” otherButtonTitles:@”cancel”,@”other”, nil];
// [alertView show];
//自定义alertView
AlertView *alertView = [[AlertViewalloc]initWithTitle:@”Alert View”message:@”message”delegate:selfcancelButtonTitle:@”sure”otherButtonTitles:@”cancel”,@”other”,nil];
[alertViewshow];
alertView.tag =identifier;
identifier ++;
}
#pragma mark alertView的代理方法,用于处理警告框按钮点击事件
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@”alert button:%ld”,(long)buttonIndex);
}
#pragma mark – 2.button2:ActionSheet
-(void)showActionView{
UIActionSheet *actionSheet = [[UIActionSheetalloc]initWithTitle:@”title”delegate:selfcancelButtonTitle:@”cancel”destructiveButtonTitle:@”destructive”otherButtonTitles:@”other button”,@”other button”,@”other button”, nil];
[actionSheetshowInView:self.view];
}
#pragma mark – actionSheet的代理方法,用于处理按钮点击事件
– (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
NSLog(@”alert button:%ld”,(long)buttonIndex);
}
– (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end