1、UIControl类是UIView的子类,位于控件类树的根部,使用目标动作发送消息。
控件种类:显示类控件、控制类控件、其它控件。
(1)向视图中添加背景图
- (void)addImageView
{
UIImageView*pTemImageView=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"456.png"]];
[self.viewinsertSubview:pTemImageViewatIndex:0];
}
(2)向视图中添加标签
- (void)addLabel
{
//创建一个标签,并设置位置
CGRectfram=CGRectMake(200,100,100,50);
UILabel*mylabel=[[UILabelalloc]initWithFrame:fram];
//设置标签背景颜色为透明色
mylabel.backgroundColor=[UIColorclearColor];
//设置标签内容和字体颜色
mylabel.text=@"hello world!\nhello,everyone";
mylabel.textColor=[UIColorredColor];
//显示行数
mylabel.numberOfLines=2;
//阴影颜色
mylabel.shadowColor=[UIColorblackColor];
//阴影尺寸
mylabel.shadowOffset=CGSizeMake(2.0,1.0);
[self.viewaddSubview:mylabel];
[mylabelrelease];
}
(3)向视图中添加按钮
NSLog(@"Buttonpushed down!");
}
{
NSLog(@"button release");
}
- (void)buttonRelease:(id)sender
{
NSLog(@"button release");
}
(4)向视图添加开关
- (void)addSwitch
{
//创建并初始化一个开关
CGRectswitchRect=CGRectMake(200,10,10,10);
UISwitch *mySwitch=[[UISwitchalloc]initWithFrame:switchRect];
//给开关添加目标和动作
[mySwitchaddTarget:selfaction:@selector(switchAction:)forControlEvents:UIControlEventValueChanged];
//切换开关
[mySwitchsetOn:YESanimated:YES];
[self.viewaddSubview:mySwitch];
[mySwitchrelease];
}
//添加动作处理方法
- (void)switchAction:(id)sender
{
//找到开关
UISwitch*pSwitch=(UISwitch *)sender;
if(pSwitch.isOn)//根据开关的状态设置背景图hidden
{
[self.pImageViewsetHidden:NO];
}
else
{
[self.pImageViewsetHidden:YES];
}
}
(5)添加滑动条 UISlider
- (void)addSlider
{
//创建滑动条
UISlider*mySlider=[[UISlideralloc]initWithFrame:CGRectMake(10,150,200,20)];
//设置最小值
mySlider.minimumTrackTintColor=0;
//设置最大值
mySlider.maximumValue=100;
//是否可以持续滑动
mySlider.continuous=YES;
//设置初始值
mySlider.value=50;
//设置透明度
mySlider.alpha=mySlider.value/100;
//最小值处理的图片
mySlider.minimumValueImage=[UIImageimageNamed:@"apple_min"];
//最大值处理的照片
mySlider.maximumValueImage=[UIImageimageNamed:@"apple_max"];
//设置当前的图片
[mySlidersetThumbImage:[UIImageimageNamed:@"apple_thumb.png"]forState:UIControlStateNormal];
//添加对应动作,注意:CotrolEvents:valueChanged
[mySlideraddTarget:selfaction:@selector(sliderAction:)forControlEvents:UIControlEventValueChanged];
//添加滑动条到视图
[self.viewaddSubview:mySlider];
//创建显示当前值的label
self.pShowValueLabel=[[UILabelalloc]initWithFrame:CGRectMake(10,100,84,26)];
//设置背景色
self.pShowValueLabel.backgroundColor= [UIColorlightGrayColor];
//设置当前文本内容
self.pShowValueLabel.text= [NSStringstringWithFormat:@"亮度:%%%d",(int)mySlider.value];
//将标签添加到视图
[self.viewaddSubview:self.pShowValueLabel];
//释放对象
[mySliderrelease];
}
- (void)sliderAction:(UISlider*)slider
{
self.pShowValueLabel.text=[NSStringstringWithFormat:@"亮度:%%%d",(int)slider.value];
self.pImageView.alpha=slider.value/100;
}
(6)添加文本框 UITextField
- (void)addTextField
{
//创建TextField
UITextField*myTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(10,200,200,31)];
//设置边框样式
myTextField.borderStyle=UITextBorderStyleRoundedRect;
//设置字体
myTextField.font=[UIFontsystemFontOfSize:18.0];
//根据宽度改变字体
myTextField.adjustsFontSizeToFitWidth=YES;
//最小字体
myTextField.minimumFontSize=2.0;
//清除按钮的样式
myTextField.clearButtonMode=UITextFieldViewModeWhileEditing;
//弹出的键盘的样式
myTextField.keyboardType=UIKeyboardTypeDefault;
//设置使用自动更正功能
myTextField.autocorrectionType=UITextAutocorrectionTypeNo;
//设置键盘自动大小写的属性
myTextField.autocapitalizationType=UITextAutocapitalizationTypeNone;
//设置返回按钮类型
myTextField.returnKeyType=UIReturnKeyDone;
//设置是否支持密码文本显示
myTextField.secureTextEntry=YES;
//设置委托
myTextField.delegate=self;
[self.viewaddSubview:myTextField];
[myTextFieldrelease];
}
(7)添加分段控件 UISegmentedControl
- (void)addSegmentControl
{
//创建数组
NSArray*pArr = [NSArrayarrayWithObjects:@"1",@"2",nil];
//根据数组对象初始化SegmentControl对象
UISegmentedControl*pSegment = [[UISegmentedControlalloc]initWithItems:pArr];
[pSegmentsetFrame:CGRectMake(10,240,300,40)];
//设置该分段控件的Style
[pSegmentsetSegmentedControlStyle:UISegmentedControlStyleBordered];
//设置分段控件选择的段数
[pSegmentsetSelectedSegmentIndex:0];
//添加关联动作
[pSegmentaddTarget:selfaction:@selector(segmentMethod:)forControlEvents:UIControlEventValueChanged];
[self.viewaddSubview:pSegment];
}
- (void)segmentMethod:(UISegmentedControl*)segment
{
NSString*pMessage = [NSStringstringWithFormat:@"你选择了第%d段,该段宽度已调整",segment.selectedSegmentIndex];
for (int i =0; i< [segmentnumberOfSegments]; i++)
{ //根据你选择的分段的Index进行响应的操作
if(i == [segmentselectedSegmentIndex])
{
[segmentsetWidth:180forSegmentAtIndex:i];
}
else
{
[segmentsetWidth:120forSegmentAtIndex:i];
}
}
//设置警告框
UIAlertView*pAlert = [[UIAlertViewalloc]initWithTitle:@"通知"message:pMessagedelegate:nilcancelButtonTitle:@"确认"otherButtonTitles:nil];
[pAlertshow];
[pAlertrelease];
}
(8)添加确认框
- (void)addCheckBoxButton
{
//创建一个按钮并设置位置
UIButton*pCheckBoxButton=[UIButtonbuttonWithType:UIButtonTypeCustom];
[pCheckBoxButtonsetFrame:CGRectMake(200,150,100,80)];
//为两种不同状态设置对应图片
[pCheckBoxButtonsetImage:[UIImageimageNamed:@"checkbox_off.png"]forState:UIControlStateNormal];
[pCheckBoxButtonsetImage:[UIImageimageNamed:@"checkbox_on.png"]forState:UIControlStateSelected];
//添加关联动作
[pCheckBoxButtonaddTarget:selfaction:@selector(checkBoxClick:)forControlEvents:UIControlEventTouchUpInside];
//添加按钮到视图中
[self.viewaddSubview:pCheckBoxButton];
//释放对象
[pCheckBoxButtonrelease];
}
//按钮关联的动作
- (void)checkBoxClick:(UIButton*)sender
{
sender.selected=!sender.selected;
}
(9)添加表示正在加载的图标
- (void)addActivityIndicatorView
{
//创建初始化ActivityIndicatorView(Style)
self.pActivity = [[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[self.pActivitysetFrame:CGRectMake(10,280,45,45)];
//设置是否隐藏
self.pActivity.hidden=NO;
[self.viewaddSubview:self.pActivity];
//创建按钮,关联对应方法
UIButton*pBtn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
[pBtnsetFrame:CGRectMake(10,330,45,30 )];
[pBtnsetTitle:@"转"forState:UIControlStateNormal];
[pBtnaddTarget:selfaction:@selector(doRotate:)forControlEvents:UIControlEventTouchUpInside];
pBtn.tag =110;
[self.viewaddSubview:pBtn];
}
- (void)doRotate:(id)sender
{
UIButton *pBtn = (UIButton *)sender;
[self.pActivityisAnimating]?[self.pActivitystopAnimating]:[self.pActivitystartAnimating];
//根据Activity是否运行来设置按钮的title
[pBtnsetTitle:(self.pActivity.isAnimating?@"停":@"转")forState:UIControlStateNormal];
self.pActivity.hidden=NO;
}
(10)创建进度条 UIProgressView
- (void)addProgress
{
//创建进度条并初始化
self.pProgress = [[UIProgressView alloc]initWithFrame:CGRectMake(10,360,300,30)];
//设置Style
self.pProgress.progressViewStyle=UIProgressViewStyleBar;
//分别设置进度条完成未完成的颜色
self.pProgress.trackTintColor= [UIColorredColor];
self.pProgress.progressTintColor= [UIColorgreenColor];
[self.viewaddSubview:self.pProgress];
//创建用来显示进度的label
self.pProgressValueLabel = [[UILabelalloc]initWithFrame:CGRectMake(100,370,110,30)];
self.pProgressValueLabel.backgroundColor= [UIColorclearColor];
self.pProgressValueLabel.text=[NSString
}
stringWithFormat:@"加载%%%.1f",self.progressValue*100];
[self.viewaddSubview:self.pProgressValueLabel];
//通过计时器完成循环调用
_pTimer= [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(progressMethod:)userInfo:nilrepeats:YES];
}
- (void)progressMethod:(id)sender
{
self.progressValue +=0.1;
self.pProgress.progress=self.progressValue;
self.pProgressValueLabel.text= [NSStringstringWithFormat:@"加载:%%%.1f",self.progressValue*100];
if (self.progressValue>=1)
{
self.progressValue =0;
self.pProgressValueLabel.text=@"加载完成";
//[self.pActivitystopAnimating];
//self.pActivity.hidden= NO;
//停止计时器
[_pTimerinvalidate];
}
}
添加文本框时,要遵守UITextFieldDelegate协议
#pragma mark-----UITextFieldDelegate------
//弹回键盘方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
//放当前的textField放弃第一响应者
[textFieldresignFirstResponder];
returnYES;
}
//限制输入字符串长度
- (BOOL)textField:(UITextField *)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string
{
intMAX_LENGTH =10;
NSMutableString*pNewString = [NSMutableStringstringWithString:textField.text];
//完成range内字符串的替换
[pNewStringreplaceCharactersInRange:rangewithString:string];
//根据两个的长度判断,返回YES or NO.
return([pNewStringlength] <= MAX_LENGTH);
}