IOS開發之UI中的其餘小控件


#import "AppDelegate.h"數組


@interface AppDelegate () <UIActionSheetDelegate,UIAlertViewDelegate,app

UITextViewDelegate>{ide

    UILabel *_showLabel;動畫

}spa


@end .net


@implementation AppDelegate3d



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

    // Override point for customization after application launch.orm

     _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];對象

    

    [_window setBackgroundColor:[UIColor whiteColor]];

    

    _showLabel = [[UILabel alloc]initWithFrame:

                  CGRectMake(100, 200, 100, 40)];

    [_window addSubview:_showLabel];

    

    

    //======================================================

    //1.UISwitch

    [self createSwitch];

    

    

    //2.滑塊

    [self createSlider];

    

    //3.進度條

    [self CreateProgressView];

    

    

    //4.步數器

    [self createStepper];

    

    //5.活動指示框

    [self createActivity];

    

    //6.多段選擇器

    [self createSegmentControl];

    

    //7.表單視圖

    // [self createActionSheet];

    

    

    //8.警告框

    //[self createAlertView];

    

    

    //9.文本輸入框

    [self createUITextView];

    

    [_window makeKeyAndVisible];

  

    return YES;

   

}


#pragma mark -建立文本輸入視圖

- (void)createUITextView{

    

    //UITextView繼承自UIScrollView

    

    //UITextViewUITextField的功能基本一致

    //UITextField的屬性和方法和UITextView都有相似的屬性和方法

    //區別1:UITextField只能一行顯示文字,UITextView能夠多行顯示

    //而且能夠滾動,

    //區別2:UITextField有佔位文字和密文顯示功能,可是UITextView沒有

    

    

    //1.建立文本輸入視圖的對象

    UITextView *textView = [[UITextView alloc]

                            initWithFrame:CGRectMake(100, 350, 200, 100)];

    

    //2.顯示在界面上

    [_window addSubview:textView];


    //3.設置背景顏色

    textView.backgroundColor = [UIColor lightGrayColor];

    

    //4.設置文字

    textView.text = @"這是一個textView";

    

    //5.設置是否能夠編輯(默認是yes)

    //NO就是純展現文字的控件

    //textView.editable = YES;


    //6.關閉選中文字的功能;

    //textView.selectable = NO;

    

    //7.設置鍵盤類型textField也有這個屬性;

    [textView setKeyboardType:UIKeyboardTypeTwitter];

    

    //8.設置return按鈕的樣式

    [textView setReturnKeyType:UIReturnKeyDefault];

    

    //9.設置代理

    textView.delegate = self;

    

}

#pragma mark -UITextView協議方法


//使用鍵盤輸入文字的時候實時調用這個方法;

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:

(NSRange)range replacementText:(NSString *)text{

    

    NSLog(@"%@",text);

    if ([text isEqualToString:@"\n"]) {

        [textView resignFirstResponder];

    }

    

    return YES;

    

}


//已經開始編輯

- (void)textViewDidBeginEditing:(UITextView *)textView{

    

    NSLog(@"已經開始編輯");

}

//已經結束編輯

- (void)textViewDidEndEditing:(UITextView *)textView{

    

    NSLog(@"已經結束編輯");

    

}


#pragma mark -建立警告框

- (void)createAlertView{

    

    //1.建立警告對象

    UIAlertView *alert = [[UIAlertView alloc]

    initWithTitle:@"警告" message:@"沒有聯網,請聯網"

    delegate:self cancelButtonTitle:@"取消"

     otherButtonTitles:@"肯定", nil];

    

    

    

    //2.顯示在界面上

    [alert show];

    

    //3.

    

    

    

}


#pragma mark -警告框協議方法

//當警告框上的按鈕被點擊的時候會調用這個方法;

//參數1:委託

//參數2:被點擊的按鈕的下標

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

    

    NSLog(@"%lu",buttonIndex);

    if (buttonIndex == 0) {

        NSLog(@"點擊了取消鍵");

    }else{

        NSLog(@"肯定刪除!!");

    }


    

}




#pragma mark -表單視圖協議方法

//當表單上的按鈕被點擊的時候會調用這個方法

//參數1:委託

//參數2:被點擊的按鈕的下標(當前表單上全部的按鈕從上到下一次增長)

- (void)actionSheet:(UIActionSheet *)actionSheet

  ckedButtonAtIndex:(NSInteger)buttonIndex{

    

    NSLog(@"%lu",buttonIndex);

    

    //根據不一樣的按鈕點擊作出不同的反應

    switch (buttonIndex) {

        case 0:{

            

            break;

        }

        case 1:{

            

            break;

        }

        case 2:{

            

            break;

        }

        case 3:{

            

            break;

        }

        case 4:{

            

            break;

        }

        default:

            break;

    }

    

    

}






#pragma mark -建立表單視圖

- (void)createActionSheet{

    

    //1.建立一個表單視圖對象

    //UIActionSheet : UIView

    //參數1:設置標題

    //參數2:設置代理

    //參數3:最下面那個獨立按鈕的標題(能夠是取消也能夠是保存等操做)

    //參數4:最上面那個紅色按鈕的標題(能夠寫爲nil)

    //參數5:中間普通按鈕的標題,其餘按鈕標題;

    UIActionSheet *actionSheet = [[UIActionSheet alloc]

    initWithTitle:@"是否觀看動漫?" delegate:self

       cancelButtonTitle:@"保存"

        destructiveButtonTitle:@"標題"

      otherButtonTitles:@"其餘標題1",@"其餘標題2", nil];

    

    

    //2.顯示在界面上

    //[actionSheet showInView:_window];

    

    

    

    

}





#pragma mark -建立多段選擇器

- (void)createSegmentControl{

    

    //1.建立多段選擇器對象

    //UISegmentedControl:UIControl

    //參數:是一個數組(當前分段選擇器中全部分段的標題的數組)

    

    UISegmentedControl *segmentControl = [[UISegmentedControl alloc]

                                          initWithItems:@[@"吸血鬼騎士",

                                                @"犬夜叉",@"純情羅曼史"]];

    //2.設置frame

    segmentControl.frame = CGRectMake(0, 80, 375, 40);

    

    //3.顯示在界面上

    [_window addSubview:segmentControl];

    

    //4.當前選中的分段(核心屬性)

    //設置選中分段的下標;

    segmentControl.selectedSegmentIndex = 0;

    

    //5.添加事件

    [segmentControl addTarget:self action:@selector(segmentOnclicked:)

             forControlEvents:UIControlEventValueChanged];

    

    //6.獲取當前分段數

    NSLog(@"%lu",segmentControl.numberOfSegments);

    

    //7.插入一個文字分段

    [segmentControl insertSegmentWithTitle:@"畫江湖" atIndex:0

                                  animated:YES];

    

    //8.插入一個圖片分段

    //imageWithRenderingMode:設置圖片的渲染模式

    //圖片不能正常顯示的時候通常就去設置圖片的渲染模式爲

    //UIImageRenderingModeAlwaysOriginal

    [segmentControl insertSegmentWithImage:

    [   [UIImage imageNamed:@"player_up_1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]

                                   atIndex:1 animated:YES];

    

    //9.移除指定下標的分段(下標不能夠越界);

    [segmentControl removeSegmentAtIndex:1 animated:YES];

    

    //10.移除全部的分段

    //[segmentControl removeAllSegments];

    

    //11.改變分段的標題

    [segmentControl setTitle:@"不良人" forSegmentAtIndex:0];

    

    //12.拿到指定下標分段的文字

    NSString *titile = [segmentControl titleForSegmentAtIndex:1];

    NSLog(@"%@",titile);

    

    //13.設置填充顏色

    [segmentControl setTintColor:[UIColor colorWithRed:100/255.0f

        green:179/255.0f blue:50/255.0f alpha:1]];

    

    

    

    

}


#pragma mark -點擊分段事件

-(void) segmentOnclicked:(UISegmentedControl *)segment{

    

    NSLog(@"%ld",(long)segment.selectedSegmentIndex);

    

}



#pragma mark -建立活動指示器

- (void)createActivity{

    

  //  [_window setBackgroundColor:[UIColor Color]];

    

    //1.建立活動指示器對象

    UIActivityIndicatorView *activity = [[UIActivityIndicatorView

                                         alloc]initWithActivityIndicatorStyle:

                          

                                         UIActivityIndicatorViewStyleWhiteLarge];

    

    //設置frame

    activity.frame = CGRectMake(100, 300, 100, 100) ;

    [_window addSubview:activity];

    //2.活動的時候才能夠看到活動指示器

    [activity startAnimating];

    

    //3.讓活動指示器中止

    [activity stopAnimating];

    

}




#pragma mark -建立步數器

- (void)createStepper{

    

    //1.建立步數器對象

    //UIStepper:UIControl

    UIStepper *stepper = [[UIStepper alloc] initWithFrame:

                          CGRectMake(100, 250, 0, 0)];

    //2.顯示在窗口

    [_window addSubview:stepper];

    

    //3.步進值(默認是0)

    stepper.value = 1;

    

    _showLabel.text = [NSString stringWithFormat:

                       @"%.2lf",stepper.value];

    

    //4.添加事件

    //stepper的加和減的按鈕,都會自動的改變steppervalue的值

    [stepper addTarget:self action:@selector(stepperOnClicked:) forControlEvents:

     UIControlEventValueChanged];

    

    //5.步進值(每按一次加或減變化的值,默認是1

    stepper.stepValue = 10;

    

    //6.設置最大值和最小值;

    stepper.maximumValue = 10;

    stepper.minimumValue = -10;

    

    //7.設置填充顏色

    stepper.tintColor = [UIColor redColor];

    

}

#pragma mark -步數器事件

- (void)stepperOnClicked:(UIStepper *)stepper{

 

    //使用stepper最新的值去更新labelvalue

    _showLabel.text = [NSString stringWithFormat:@"%.2lf",stepper.value];

    

    

}


#pragma mark -UIProgressView進度條



- (void)CreateProgressView{

    

    //1.建立進度條對象

    //UIProgressViewStyleDefault//顏色是灰色的

    //UIProgressViewStyleBar//顏色是白色的

    UIProgressView *progressView = [[UIProgressView alloc]initWithProgressViewStyle:

                                    UIProgressViewStyleDefault];

    

    //2.設置frame;(設置高度無效)

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

    

    progressView.tag = 77;

    

    //3.進度(核心屬性)(0-1)

    progressView.progress = 0.5;

    

    

    //4.設置從開始到當前進度位置,進度條的顏色

    

    progressView.progressTintColor = [UIColor cyanColor];

    //5.從進度位置到結束,進度條的顏色

    progressView.trackTintColor = [UIColor redColor];

    

    //6.設置進度帶動畫效果;

    [progressView setProgress:0.2 animated:YES];

    

    [_window addSubview:progressView];

    

}



#pragma mark -UISlider

- (void)createSlider{

    

    //1.建立一個滑塊對象;

    //UISlider:UIControl:UIView;

    UISlider *slider = [[UISlider alloc]initWithFrame:

    CGRectMake(100, 150, 200, 50)];

    //2.顯示在界面上

    [_window addSubview:slider];

    

    //3.當前滑塊位置對應的值;(默認的值是0-1)

    slider.value = 0.5f;

    

    //4.設置滑塊的最小值和最大值

    //最小值默認是0

    slider.minimumValue = 1;

    //最大值默認是1

    slider.maximumValue = 10;

    

    slider.value = 5;

    

    //5.添加事件;

    //能添加的事件只有:UIControlEventValueChanged

    [slider addTarget:self action:@selector(sliderChange:)

     forControlEvents:UIControlEventValueChanged];

    

    //6.設置slider最左邊顯示的圖片(通常不用)

    [slider setMinimumValueImage:[UIImage imageNamed:@"player_right_1"]];

    

    //7.把滑塊設置爲圖片滑塊;(經常使用)

    [slider setThumbImage:[UIImage imageNamed:@"player_down_1"]

                 forState:UIControlStateNormal];

    [slider setThumbImage:[UIImage imageNamed:@"player_up_1"]

                 forState:UIControlStateHighlighted];

    //8.滑條和滑塊的顏色

    //設置最左端到滑塊部分的填充顏色;

    [slider setMinimumTrackTintColor:[UIColor yellowColor]];

    

    //滑塊到最右端的填充顏色

    [slider setMaximumTrackTintColor:[UIColor cyanColor]];

    

    //滑塊的顏色

    [slider setThumbTintColor:[UIColor brownColor]];

    

    //9.設置滑塊的值是否實時(連續)改變

    slider.continuous = YES;

    


}

//當滑塊滑動的時候實時調用這個方法;

- (void)sliderChange:(UISlider *) slider{

    

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

    

    //改變進度條的進度

    UIProgressView *progressView = (UIProgressView *)[_window viewWithTag:77];

    

    progressView.progress = slider.value / (slider.maximumValue -

                                            slider.minimumValue);

    

    

    

}



#pragma mark - UISwitch

- (void)createSwitch{

    

    //1.建立開關對象;

 //UISwitch:UIControl:UIView

    UISwitch *switch1 = [[UISwitch alloc]initWithFrame:

                         CGRectMake(100, 30, 0, 0)];

    

    //顯示在界面上

    [_window addSubview:switch1];

    

    //2.開關的核心屬性:開關關閉狀態和開狀態

    //yes: NO:(默認);

    //設置開關狀態;

    [switch1 setOn:YES];

    //獲取開關的狀態;

    BOOL ret = [switch1 isOn];

    if (ret) {

        NSLog(@"開啓");

    }else{

        NSLog(@"關閉");

    }

  

    //3.給開關添加事件

    //參數1:響應消息的對象

    //參數2:消息(能夠不帶參,也能夠單參,帶參只能帶開關自己)

    //參數3:事件

    [switch1 addTarget:self action:@selector(switchOn:)

      forControlEvents:UIControlEventValueChanged];

    

    //4.設置開關開啓狀態的填充顏色;

    switch1.onTintColor = [UIColor yellowColor];

    

    //5.設置關閉狀態的顏色;

    switch1.tintColor = [UIColor redColor];

    

    //6.設置開關滑塊的顏色

    switch1.thumbTintColor = [UIColor cyanColor];


   

}


- (void)switchOn:(UISwitch *)switch1{

    

    //每次點擊開關都建立表單;

    [self createActionSheet];

    

    

    //每次觸摸開關,開關的狀態都會發生改變

    if (switch1.on) {

    

        NSLog(@"開關開啓");

    

    }else{

    

        NSLog(@"開關關閉");

    }

    

}




@end

相關文章
相關標籤/搜索