UI_滑竿,分段控制器

#import "AppDelegate.h"

#import "ViewController.h"

#import "secondViewController.h"

@interface AppDelegate ()


@end


@implementation AppDelegate



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

//        //滑竿

//    ViewController *viewController =[[ViewController alloc]init];

//    self.window.rootViewController = viewController;

    

        //分段控制器

    secondViewController *secondVC = [[secondViewController alloc]init];

    self.window.rootViewController = secondVC;

    

    

    

    self.window.backgroundColor = [UIColor whiteColor];

    [self.window makeKeyAndVisible];

    return YES;

}

@end



#import "ViewController.h"


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    //滑竿的使用

        //初始化

    UISlider *mySlider =[[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 50)];

//    [self.view addSubview:mySlider];

        //設置滑竿的最小值

    mySlider.minimumValue = 0;

        //設置滑竿的最大值

    mySlider.maximumValue = 100;

        //劃過範圍的顏色

    mySlider.minimumTrackTintColor = [UIColor redColor];

        //未划過去範圍的顏色

    mySlider.maximumTrackTintColor = [UIColor blackColor];

        //設置滑塊的顏色

    mySlider.thumbTintColor = [UIColor grayColor];

        //設置左邊指示圖標

    mySlider.minimumValueImage = [UIImage imageNamed:@"han30.png"];

        //設置右邊的指示圖標

    mySlider.maximumValueImage = [UIImage imageNamed:@"han30.png"];

        //設置滑塊的起始位置

    mySlider.value = 50;

        //爲滑竿添加觸發事件

    [mySlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];

    

    

//練習:

    //滑動滑竿改變視圖的背景顏色。通過三個滑竿,分別控制R/G/B三原色

    for (int i = 0 ; i<3; i++) {

        UISlider *colorSlider = [[UISlider alloc]initWithFrame:CGRectMake(50, 300+i * 50, 300, 50)];

        //由於顏色的範圍爲0~1.0,所以我們將滑竿的取值範圍設置爲0~1.0

        colorSlider.minimumValue = 0.0;

        colorSlider.maximumValue = 1.0;

        //由於有三個滑竿公用同一個回調方法,所以要在回調方法中區分目前所操作的是哪個滑竿,所以需要添加tag值來區分。

        colorSlider.tag = 1000+i;

        //添加回調事件

        [colorSlider addTarget:self action:@selector(changColor:) forControlEvents:UIControlEventValueChanged];

        

        [self.view addSubview:colorSlider];

        

            //設置滑塊顏色爲隨機色(滑塊顏色太醜了)

        if (i ==0) {

            colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];

        }else if(i ==1){

            colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];

        }else if(i ==2){

            colorSlider.thumbTintColor =[UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];

        }

        

}

    //添加圖片,讓滑竿控制圖片

        UIImageView *myImage =[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 150 , 150)];

        UIImage *image = [UIImage imageNamed:@"han.png"];

//        [myImage addSubview:image];  錯的,下面是對的

//        [myImage setImage:image]; 這個和下面的都可以

         myImage.image = image;

        [self.view addSubview:myImage];

         myImage.tag = 1111;

//    myImage.center = self.view.center;

    

    UISlider *mySlider1 = [[UISlider alloc]initWithFrame:CGRectMake(50, 20, 300, 50)];

    [mySlider1 addTarget:self action:@selector(changAction:) forControlEvents:UIControlEventValueChanged];

    [self.view addSubview:mySlider1];

    mySlider1.minimumValue = 75;

    mySlider1.maximumValue = 100;

   

    

    

    

    

}

//實現滑竿的回調方法

-(void)sliderAction:(UISlider *)sender{

    //打印滑竿當前的位子所對應的值

    NSLog(@"value---%f",sender.value);

}


-(void)changColor:(UISlider *)sender{

    //通過tag值得到三個滑竿

    UISlider *redSlider =(UISlider *) [self.view viewWithTag:1000];

    UISlider *greenSlider = (UISlider *)[self.view viewWithTag:1001];

    UISlider *blueSlider = (UISlider *)[self.view viewWithTag:1002];

    //得到顏色

    UIColor *resultColor = [UIColor colorWithRed:redSlider.value green:greenSlider.value blue:blueSlider.value alpha:1.0];

    //設置視圖的背景顏色

    self.view.backgroundColor = resultColor;

}


//隨着滑塊滑動--改變圖片大小

-(void)changAction:(UISlider *)sender{

  UIImageView *newImageView = (UIImageView *)[self.view viewWithTag:1111];

    newImageView.frame = CGRectMake(100, 100, 2*sender.value, 2*sender.value);

//    newImageView.bounds = CGRectMake(0, 0, 2*sender.value, 2*sender.value);  這個是以圖片中心爲原點放大,上面的是以定義的100100爲原點放大

}




- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end






#import "secondViewController.h"


@interface secondViewController ()


@end


@implementation secondViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    //分段控制器

        //初始化,使用自己的初始化方式

        //itmes:該參數所需要的類型爲數組,根據數組中的按鈕標題來創建響應個數的按鈕。所以數組中的元素類型爲NSString

    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:@[@"",@"",@""]];

        //設置大小--frame

    segmentedControl.frame = CGRectMake(80, 80, 210, 50);

//    [self.view addSubview:segmentedControl];

        //設置默認選中某個按鈕  從左到右  01...

    [segmentedControl setSelectedSegmentIndex:1];

        //設置背景顏色

    [segmentedControl setTintColor:[UIColor cyanColor]];

        //爲每個分段設置圖片

            //圖片沒有被顯示出來,因爲圖片被系統渲染了。

            //在圖片代碼後面加代碼imageWithRenderingMode

            //裏面有三種,意義爲:自動  原始 一直受系統渲染

    [segmentedControl setImage:[[UIImage imageNamed:@"han.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]forSegmentAtIndex:0];

    [segmentedControl addTarget:self action:@selector(changeBGColor:) forControlEvents:UIControlEventValueChanged];

//--------------------------------------------------------------------

    

//三個界面通過分段控制器切換

    for (int i = 0 ; i<3; i++) {

        UIView *view = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];

        view.center = self.view.center;

        view.tag = 1000+i;

        view.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0 green:arc4random()%256/255.0 blue:arc4random()%256/255.0 alpha:1.0];

        if (i ==0) {

            view.hidden = NO;

        }else{

            view.hidden = YES;

        }

        [self.view addSubview:view];

    }

    //創建分段控制器,控制界面的切換

    UISegmentedControl *changeViewSegment = [[UISegmentedControl alloc]initWithItems:@[@"1",@"2",@"3"]];

    changeViewSegment.frame = CGRectMake(100, 100, 200, 50);

    [changeViewSegment addTarget:self action:@selector(changeView:) forControlEvents:UIControlEventValueChanged];

    [changeViewSegment setSelectedSegmentIndex:0];

    [self.view addSubview:changeViewSegment];

    

    

    

//---------------------------------------------------------------------

//UIStepper--加減控件

    UIStepper *stepper = [[UIStepper alloc]initWithFrame:CGRectMake(20 , 20, 100, 100)];

    [self.view addSubview:stepper];

        //最小值

    stepper.minimumValue = 0;

        //最大值

    stepper.maximumValue =10;

        //每次增量

    stepper.stepValue = 1;

        //設置是否循環

    stepper.continuous = YES;

        //設置是否連續循環

    stepper.wraps = YES;

        //設置按鈕的顏色

    stepper.tintColor = [UIColor cyanColor];

        //設置背景顏色

    [stepper setBackgroundColor:[UIColor orangeColor]];

        //設置背景圖片

//    [stepper setBackgroundImage:[UIImage imageNamed:@"han.png"]forState:UIControlStateNormal];

        //加回調函數方法

    [stepper addTarget:self action:@selector(stepperAction:) forControlEvents:UIControlEventValueChanged];

    

//-------------------------------------------------------------------

    //加減控件的應用,繼承上面的概念數據

    //將數字顯示在label

 

    UILabel *myLabel1 = [[UILabel alloc]initWithFrame:CGRectMake(130, 21, 30, 30)];

    myLabel1.backgroundColor = [UIColor blueColor];

    [self.view addSubview:myLabel1];

    

       UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(132,23, 26, 26)];

    myLabel.text = @"0";

    [self.view addSubview:myLabel];

    myLabel.backgroundColor=[UIColor whiteColor];

    myLabel.tag = 1234;

}



//-------------------------------------------------------------------

//分段控制器的回調方法

-(void)changeBGColor:(UISegmentedControl *)sender{

        //得到當前正在點擊的分段

    int index = (int)sender.selectedSegmentIndex;

    

    UIColor *resultClolr = [UIColor  whiteColor];

    switch (index) {

        case 0:

//            [self.view setBackgroundColor:[UIColor redColor]];

            resultClolr = [UIColor redColor];

            break;

        case 1:

//            [self.view setBackgroundColor:[UIColor greenColor]];

            resultClolr = [UIColor greenColor];

            break;

        case 2:

//            [self.view setBackgroundColor:[UIColor blueColor]];

            resultClolr = [UIColor blueColor];

            break;

            

        default:

            break;

    }

    self.view.backgroundColor = resultClolr;

}


//--------------------------------------------------------------------

-(void)changeView:(UISegmentedControl *)sender{

    //得到三個界面

    UIView *oneView = [self.view viewWithTag:1000];

    UIView *twoView = [self.view viewWithTag:1001];

    UIView *threeView = [self.view viewWithTag:1002];

    switch (sender.selectedSegmentIndex) {

        case 0:

        {

            oneView.hidden = NO;

            twoView.hidden = YES;

            threeView.hidden = YES;

        }

            break;

        case 1:

        {

            oneView.hidden = YES;

            twoView.hidden = NO;

            threeView.hidden = YES;

        }

            break;

        case 2:

        {

            oneView.hidden = YES;

            twoView.hidden = YES;

            threeView.hidden = NO;

        }

            break;

            

        default:

            break;

    }

}



//---------------------------------------------------------------------

//加減控件的回調函數

-(void)stepperAction:(UIStepper *)sender{

    

    UILabel *label = (UILabel *)[self.view viewWithTag:1234];

    [label setText:[NSString stringWithFormat:@"%.f",sender.value]];

    

    

    NSLog(@"%f",sender.value);

}









- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章