UIControl类
—位于控件类树的根部
—使用目标动作方法发送消息
控件种类
—标签
—文本
—按钮
—开关
—分段控制器
控制事件
—基于触摸
—基于数值
—基于编辑
显示控件
UILabel类
—只读视图,显示一行或多行文本
1.创建
CGRect labelFrame=CGRectMake(0,10,100,50);
UILabel*myLabel=[[UILabel alloc]initWithFrame:labelFrame];
2.设置颜色
myLabel.backgroundColor=[UIColor clearColor];
myLabel.textColor=[UIColor redColor];
3.设置字体
myLabel.font=[UIFont fontWithName:@"Verdana"
Size:18.0];
4.设置多行文本
myLabel.numberOfLines=2;
myLabel.text=@"Hello World\nSecond line";
5.添加到视图
[self.view addSubview:myLabel];
6.释放
[ myLabel release];
UITTextField类
—进行小段文本输入
—一般是单行
1.创建
CGRect textRect=CGRectMake(10,10,300,31);
UITextField *myTextField=[[UITextField alloc]
initWithFrame:textRect];
myTextField.backgroundColor=[UIColor whiteColor];
设置字体
myTextField.font=[UIFont systemFontOfSize:22.0];
myTextField.adjustsFontSizeToFitWidth=YES;
myTextField.minimumFontSize=2.0;
协议
@interface MyUIControlViewController:
UIViewController<UITextFieldDelegate>
取消键盘显示
-(BOOL)textFieldShouldReturn:(UITextField *)//返回布尔值
textField
{
[textField resignFirstResponder];
return YES;
}
设置文本框的代理(实现协议回调)
-(void)viewDidLoad
{
myTextField.delegate=self;
}
协议
-(BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{ int MAX_CHARS=10;
NSMutableString *newText=[NSMutable
—String stringWithString:textField.text];
[newText replaceCharactersInRange:range
withString:string];
return([newText length]<=MAX_CHARS);
}
控制控件
—按钮
创建并初始化
UIButton *myButton=[UIButton buttonWithType:
UIButtonTypeRoundedRect];//buttonWithType是个枚举类
添加目标和动作
[myButton addTarget:self action:@selector
(buttonDown:) forControlEvents:UIControlEvent
—TouchUpInside];//冒号后面带参数
添加动作处理方法
-(void)buttonDown:(id)sender
{
NSLog(@"Button pushed down");
}
创建带有图片的按钮
[myButton setImage:[UIImage imageNameed:
@"myButtonImage.png"]
forState:UIControlStateNormal];
—开关
创建开关
—初始化
CGRect switchRect=CGRectMake(120,50,0,0,);
UISwitch *mySwitch=[[UISwitch alloc]
initWithFrame:switchRect];
添加事件处理
[mySwitch addTarget:self
action:@selector(switchAction:)
forControlEvents:UIControlEventValueChanged;
切换开关
[mySwitch setOn:YES animated:YES]
修改开关外观
—获得开关的两个label
UIView *mainView=[[[[mySwitch subviews]
objectAtIndex:0]subviews]objectAtIndex:2];
UILabel*onLabel=[[mainView subviews]
objectAtIndex:0];
UILabel*offLabel=[[mainView subviews]
objectAtIndex:1];//subviews 子视图
修改字体和颜色
onLabel.text=@"YES";
offLabel.text=@"NO";
onLabel.textColor=[UIColor yellowColor];
offLabel.textColor=[UIColor greenColor];
滑块
创建
CGRect sliderRect=CGRectMake(20,50,280,40);
UISlider*mySlider=[[UISlider alloc]initWithFrame:
sliderRect];
mySlider.minimumValue=0;
mySlider.maximumValue=100;
mySlider.continuous=YES;
.............................
处理滑动事件
-(void)sliderAction:(id)sender
{
int stepAmount=10;
Float stepValue=(abs([(UISlider *)sender value])/stepAmount)*stepAmount;
[sender setValue:stepValue];
[blSliderValue.text=[NSString stringWithFormat:
@"%d",(int)stepValue];
分段控件使用—主要步骤
-调用默认的初始化方法initWithltems:
-设置大小,且控件将会自动调整大小以容纳其分段
-每个分段以相同大小初始化
-setWidth:forSegmentIndex:设置单个分段的宽度.
-setSelected SegmentIndex:选择分段
-setEnabled:forSegementAtIndex:关闭单个的分段
-InsertSegments WithImage:atInde:animated:
添加更多分段
-removeSegmentsAtIndex:animated:删除分段
-removeAllSegments:清除整个控件
分页控件使用—主要步骤
-创建一个滚动视图,并将滚动视图的分页属性打开
-设置分页控件分页数
-设置滚动视图的contentView为其宽度的三倍
-关闭滚动视图指示器
-设置分页控件的大小
-给页面控件添加一个目标
-一便按下它的时候,它调用changePage:方法
-向滚动视图并排地添加三个UIViews表示3个页面
-调用creatPages:完成
-实现scrollViewDidScroll:委托方法
-在点击页面控件时,调用changePage: