UI第六天::UIControl及其⼦類

⼀、UISegmentedControl的使⽤
UISegmentedControl是iOS中的分段控件。
每個segment都能被點擊,相當於集成了若干個button。
通常我們會點擊不同的segment來切換不同的view。
常⽤⽅法和屬性
initWithItems: //UISegmentedControl獨有的初始化⽅法,⽤來創建多個分段
setTitle: forSegmentAtIndex: //爲指定下標的分段設置title
selectedSegmentAtIndex //(property)被選中的segment
tintColor //(property)segmentedControl條的顏⾊(含每個segment的顏⾊)
addTarget: action: forControlEvents: 給UISegmentedControl添加事件, controlEvent爲UIControlEventValueChanged。
 UIImage *i1= [UIImage imageNamed:@"01"];
   
UIImage *i2= [UIImage imageNamed:@"02"];
   
UIImage *i3= [UIImage imageNamed:@"03"];
   
   
NSArray *array = [NSArray arrayWithObjects:i1,i2,i3, nil]; //初始化的數組中必須是字符串或者圖片
   
   
UISegmentedControl *segement = [[UISegmentedControl alloc]initWithItems:array];
    segement.
frame = CGRectMake(50, 100, 300, 50);
    segement.
backgroundColor = [UIColor yellowColor];
   
//設置默認選中
    [segement
setSelectedSegmentIndex:0];
   
//修改中間寬帶
    [segement
setWidth:150 forSegmentAtIndex:1];
   
//插入圖片必須使用鏤空圖
//    [segement setImage:[UIImage imageNamed:@"01"] forSegmentAtIndex:0];
//    [segement setImage:[UIImage imageNamed:@"02"] forSegmentAtIndex:1];
//    [segement setImage:[UIImage imageNamed:@"03"] forSegmentAtIndex:2];
   
//修改選中顏色
    segement.
tintColor = [UIColor grayColor];
    [
self.view addSubview:segement];
    [segement
addTarget:self action:@selector(segement:) forControlEvents:UIControlEventValueChanged];
    [
self.view bringSubviewToFront:second.view];
    [
self.view bringSubviewToFront:segement];
    [segement
release];
}
-(
void)segement:(UISegmentedControl *)segement
{
   
if (segement.selectedSegmentIndex == 0) {
       
UIView *view = [self.view viewWithTag:1000];
        [
self.view bringSubviewToFront:view];
        [
self.view bringSubviewToFront:segement];
    }
if (segement.selectedSegmentIndex == 1) {
       
UIView *view = [self.view viewWithTag:1001];
        [
self.view bringSubviewToFront:view];
        [
self.view bringSubviewToFront:segement];
    }
if (segement.selectedSegmentIndex == 2) {
       
UIView *view = [self.view viewWithTag:1002];
        [
self.view bringSubviewToFront:view];
        [
self.view bringSubviewToFront:segement];
    }
}
⼆、UISlider的使⽤
UISlider是iOS中的滑塊控件。
通常⽤於控制視頻播放進度,控制⾳量等。
它也是繼承於UIControl,滑塊提供了⼀系列連續的值,滑塊停在不 同的位置,獲取到滑塊上的值也不同。
minimumValue //設置滑塊的最⼩值
maximumValue //設置滑塊的最⼤值
value //設置滑塊的當前值
minimumTrackTinkColor //定義劃過區域的顏⾊
addTarget: action: forControlEvents: 給UISlider添加事件,controlEvent爲UIControlEventValueChanged。
 self.slider1 = [[UISlider alloc]initWithFrame:CGRectMake(0, 500, self.view.frame.size.width, 50)];
   
self.slider1.minimumValue = 0;
   
self.slider1.maximumValue = 256;
   
self.slider1.minimumValueImage = [UIImage imageNamed:@"01"];
   
self.slider1.maximumValueImage = [UIImage imageNamed:@"03"];
    [
self.slider1 setThumbImage:[UIImage imageNamed:@"01"] forState:UIControlStateNormal];
    [
self.slider1 setThumbImage:[UIImage imageNamed:@"02"] forState:UIControlStateHighlighted];
    [
self.slider1 addTarget:self action:@selector(slider1:) forControlEvents:UIControlEventValueChanged];
    [
self.view addSubview:self.slider1];
    [self.slider1 release];

三、UIImageView的使⽤
image //設置圖⽚
animationImages //設置⼀組動態圖⽚
animationDuration //設置播放⼀次⼀組動態圖⽚的時間
animationRepeatCount //設置重複次數
startAnimating //開始動畫
stopAnimating //結束動畫
//imageview 跑圖
   
self.image = [[UIImageView alloc]initWithFrame:CGRectMake((self.view.frame.size.width-300)/2, 200, 300, 300)];
   
self.image.backgroundColor = [UIColor whiteColor];
//    self.image.animationImages = [[NSArray alloc]initWithObjects:[UIImage imageNamed:@"1.jpg"],[UIImage imageNamed:@"2.jpg"],[UIImage imageNamed:@"3.jpg"],[UIImage imageNamed:@"4.jpg"],[UIImage imageNamed:@"5.jpg"],[UIImage imageNamed:@"6.jpg"],[UIImage imageNamed:@"7.jpg"],[UIImage imageNamed:@"8.jpg"],[UIImage imageNamed:@"9.jpg"],[UIImage imageNamed:@"10.jpg"], nil];
   
NSMutableArray *array =[NSMutableArray array];
   
// 構建一個圖片數組
   
for (int i = 1; i < 11; i++) {
       
//把圖片名字拼接出來
       
NSString *str = [NSString stringWithFormat:@"%d.jpg",i];
       
UIImage *image = [UIImage imageNamed:str];
        [array
addObject:image];
    }
   
self.image.animationImages = array;
   
self.image.animationDuration = 2.0;
   
self.image.animationRepeatCount = 0;
    [
self.image startAnimating];
    [
self.view addSubview:self.image];
    [
self.image release];
   
self.slider =[[UISlider alloc]initWithFrame:CGRectMake(0, 500, self.view.frame.size.width, 50)];
   
   
self.slider.maximumValue = 5.0;
   
self.slider.minimumValue = 0.1;
   
self.slider.value = 2.0;
   
    [
self.slider addTarget:self action:@selector(slider:) forControlEvents:UIControlEventValueChanged];
    [
self.view addSubview:self.slider];
    [
self.slider release];
}
-(
void)slider:(UISlider *)slider
{
   
if (self.slider.value == 5.0) {
        [
self.image stopAnimating];
        [
self.slider setThumbImage:[UIImage  imageNamed:@"03" ] forState:UIControlStateNormal];
       
self.image.image = [UIImage imageNamed:@"005.jpg"];
       
    }
else{
   
self.image.animationDuration =self.slider.value;
    [
self.image startAnimating];
    }

}


四、UIControl的作⽤
UIControl是所有控制控件(⽐如UIButton、UISlider、 UISegmentedControl等)的基類。
只要跟控制有關的控件都是繼承於該類。
UIControl的核⼼功能:
爲控制控件通過addTarget: action: forControlEvents: ⽅法來添加事 件。
通過removeTarget: action: forControlEvents: 來移除事件。
// button倒數計數器的建立
-(void)button:(UIButton *)button
{
   
//倒計時 核心每個一秒時間遞減
   
//計時器(每個多少時間調用一個方法)
   
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer:) userInfo:@"button倒計時" repeats:YES];
   
//計時器開始
    [timer
fire];
   
UIButton *b =(UIButton *)[self.view viewWithTag:1000];
    b.
userInteractionEnabled = NO;
}
-(
void)timer:(NSTimer *)timer
{
   
//Button標題
   
NSString *title = [NSString stringWithFormat:@"%ld",self.num--];
   
UIButton *b = (UIButton *)[self.view viewWithTag:1000];
    [b
setTitle:title forState:UIControlStateNormal];
   
//判斷倒計時是否結束
   
if([[b titleForState:UIControlStateNormal] isEqualToString:@"0"])
    {
       
//停止計時器
        [timer
invalidate];
        b.
userInteractionEnabled = YES;
        [b
setTitle:@"重新發送驗證碼" forState:UIControlStateNormal];
       
self.num = 5;
    }
}

總結

UIControl是所有控制類控件的基類。
UISlider是可以響應滑動事件的控件
UISegmentedControl是可以實現單選的控件
UIImageView除了能顯⽰單張圖⽚,還能處理⼀組圖⽚的播放。
發佈了33 篇原創文章 · 獲贊 0 · 訪問量 7613
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章