IOS基础学习日志(二)
今天我们主要学习了IOS相关的一些界面元素和控件的相关定义和声明,如下便是我们今天所学内容。
本章要点:
1、用户界面元素
2、显示控件
3、控制控件
4、其他控件
1、用户界面元素:
UIControl类(继承UIControl类,它可以响应你的方法)
位于控件类树的根部
使用目标动作方法发送消息
控件种类:
标签 (Label)
文本
按钮 (Button)
开关 (ON)
分段控制器
空间事件:
基于触摸
基于数值
基于编辑
显示控件 --标签
UILabel:
只读视图,显示一行或多行文本
1、创建
CGRect labelFrame = CGRectMake(0,10,100,50);
UILabel *myLabel = [[UILabelalloc]initWithFrame:labelFrame];
2、设置颜色
myLabel.backgrounfColor = [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];
2、显示控件--文本控件
UITextField
- 进行小段文本输入
- 一般都是单行
创建
CGRect textRect = CGRectMake(10, 10, 300, 31);
UITextField *myTextField = [[UITextFieldalloc]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
{
[textFieldresignFirstResponder];
return YES;
}
设置文本框的代理
-(void)viewDidLoad
{
myTextField.delegate = self;
}
协议
-(BOOL)textField:(UITextField*)textField
shouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString *)string
{
intMAX_CHARS = 10;
NSMutableString * newText = [NSMutableStringstringWithString:textField.text];
[newText replaceCharactersInRange:range withString:string];
return([newText length] <= MAX_CHARS);
}
3、控制控件 --- 按钮
创建并初始化
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
添加目标和动(引用的self 方法后面的冒号,需要看你调用的这个方法 又没有参数,它如果有参数,一定要用上冒号,冒号是方法名的一部分,所以说如果你少了这个冒号就是等于你当前的这个方法不完全,不完全导致的结果就是这个目标找不到相对应的动作,所以会报错)
[myButton addTarget:self action:@selector(buttonDown)forControlEvents:UIControlEventTouchUpInside];
添加动作处理方法
- (void)buttonDown :(id)sender
{NSLog(@"Button pushed down");}
创建带有图片的按钮
[myButton setImage:[UIImageimageNamed:@"myButtonImage.png"]
forState:UIControlStateNormal];
创建开关
--初始化
CGRect switchRect = CGRectMake(120,50,0,0);
UISwitch *mySwitch = [[UISwitch alloc]initWithFrame:switchRect];
添加事件处理
[mySwitch addTarget: self
action : @selector(switchAction:)
forControlEvents: UIControlEventValueChangeChanged];
切换开关
[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]objextAtIndex:1];
修改字体和颜色
onLabel.text = @"YES";
offLabel.text = @"NO";
onLabel.textColor = [UIColor yellowColor];
offLabel.textColor = [UIColoe 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 *)sendervalue])/stepAmount * stepAmount;)
[sendersetValue:stepValue];
lblSiderValue.text = [NSString stringWithFormat:@"%d",(int)stepValue];
}
4、分段控件使用 -- 主要步骤:
调用默认的初始化方法initWithltems:
设置大小,且控件将会自动调整大小以容纳其分段--每个分段以相同大小初始化
setWidth:forSegmentlndex:设置单个分段的宽度
setSelected Segmentlndex:选择分段
setEnabled:forSegementAtlndex:关闭单个的分段
insertSegments Withlmage:atlndex:animated:添加更多的分段
removeSegmentsAtlndex:animated:删除分段
removeAllSegments:清除整个控件
创建一个滚动视图,并将滚动视图的分页属性打开
设置分页控件分页数,
--设置滚动视图的contentView为其宽度的3倍
-- 关闭滚动视图指示器
设置分页控件的大小
--- 给页面控件添加一个目标
--- 以便按下它的时候,它会调用changePage:方法
向滚动视图并排地添加三个UIViews表示3个页面
--调用createPages:完成
实现scrollViewDidScroll:委托方法
在点击页面控件时,调用changePage: