UI控件笔记(八):UI之UISlider\UIStepper\ UIProgressView\ UITextView\UISwitch\ UIActivityIndicatorView\ UISeg

一、UISlider(滑动条)及其属性

- (void)viewDidLoad {

    [super viewDidLoad];


   1slider 滑动区域高度固定

    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 64, 320, 20)];

    slider.backgroundColor = [UIColor redColor];

    [self.view addSubview:slider];

    [slider release];

    

    2、滑动条的最大值

    slider.maximumValue = 1;

    

    3、滑动块的位置

    slider.value = 0;


    注意:默认slider的最大值是1value0-1之间的float

    

    [slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];//值得改变事件是valueChanged

    

    [slider addTarget:self action:@selector(sliderStop:) forControlEvents:UIControlEventTouchUpInside];

}


-(void)sliderValueChange:(UISlider*)slider

{

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

}


-(void)sliderStop:(UISlider*)slider

{

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

}


二、UIStepper(步进器)、UIProgressView(进度条)及其属性

- (void)viewDidLoad {

    [super viewDidLoad];


    1stepper宽高设置无用

    UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(0, 64, 320, 300)];

    [self.view addSubview:stepper];

    [stepper release];

    

    2、最大值

    stepper.maximumValue = 10;

    

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

    

    3、步进率(每点一下变多少)

    stepper.stepValue = 2;

    

    

    4、进度条

    UIProgressView *progress = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 120, 320, 20)];

    [self.view addSubview:progress];

    [progress release];

    progress.tag = 11000;

    //初始时进度

    progress.progress = 0.0;

    // Do any additional setup after loading the view, typically from a nib.

}


-(void)stepperValueChange:(UIStepper*)stepper

{

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

    

    UIProgressView *progress = (UIProgressView*)[self.view viewWithTag:11000];

    progress.progress = stepper.value/10.0;//用步进器当前的值除以步进器的最大值,得到一个百分数

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


三、UITextView(文本输入框)及其属性——需要代理


文本输入框中的提示文字是由label贴上去的,当文本输入框编辑时,label隐藏,当文本输入框编辑完成并且输入框内没有输入,label不隐藏。


#import "ViewController.h"


@interface ViewController ()<UITextViewDelegate>//注意这里加UITextView的代理


@end


@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    

    [self makeBtn];

    

    [self makeTextView];

    // Do any additional setup after loading the view, typically from a nib.

}

-(void)makeBtn

{

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    btn.frame = CGRectMake(self.view.frame.size.width-80, 64, 60, 20);

    [btn setTitle:@"完成" forState:UIControlStateNormal];

    [btn addTarget:self action:@selector(btnDown) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btn];

}


-(void)btnDown

{

    //1、找到textView

    UITextView *text = (UITextView*)[self.view viewWithTag:7000];

    //2、结束textView的编辑

    [text resignFirstResponder];

}


-(void)makeTextView

{

    UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 90, 300, self.view.frame.size.height-100)];

    [self.view addSubview:textView];

    textView.backgroundColor = [UIColor yellowColor];

    textView.delegate = self;

    [textView release];

    textView.tag = 7000;

    

    UILabel *label = [[UILabel alloc] initWithFrame:textView.bounds];

    label.text = @"请在这里输入您的留言...";

    [textView addSubview:label];

    [label release];

    label.tag = 2000;

    

    label.userInteractionEnabled = NO;

特别注意:userInteractionEnabledyes时,上面的东西可用,NO时,下面的东西可用

}


//开始编辑的代理方法

-(void)textViewDidBeginEditing:(UITextView *)textView

{

    UILabel *lab = (UILabel*)[self.view viewWithTag:2000];

    lab.hidden = YES;

}


四、UISwitch(开关)、UIActivityIndicatorView(小转圈)及其属性

- (void)viewDidLoad {

    [super viewDidLoad];

    1、宽高无用

    UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectMake(0, 64, 320, 300)];

    [self.view addSubview:sw];

    [sw release];

    

    2、开关属性

    sw.on = YES;

    

    [sw addTarget:self action:@selector(switchValueChange:) forControlEvents:UIControlEventValueChanged];

    

    self.view.backgroundColor = [UIColor blackColor];

    3、小转圈

    UIActivityIndicatorView *avi = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 150, 320, 200)];

    avi.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;

    [self.view addSubview:avi];

    [avi release];

    avi.tag = 12000;

    

    [avi startAnimating];//开始转

    // Do any additional setup after loading the view, typically from a nib.

}


-(void)switchValueChange:(UISwitch*)sw

{

    NSLog(@"%d",sw.on);

    UIActivityIndicatorView *avi = (UIActivityIndicatorView*)[self.view viewWithTag:12000];

    if(sw.on)//判断switch是开还是管

    {//

        [avi startAnimating];//开转

    }

    else

    {//

        [avi stopAnimating];//停转

    }

}


五、UISegmentedControl(单选器)及其属性

- (void)viewDidLoad {

    [super viewDidLoad];

    

    NSArray *titleArr = @[@"pp",@"qq",@"oo",@"lily"];

    

    1、用数组来初始化一个segment

    UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:titleArr];

    seg.frame = CGRectMake(0, 64, 320, 40);

    [self.view addSubview:seg];

    [seg release];

    

    2segment的选中属性,表示正被选中的那个元素的下标

    seg.selectedSegmentIndex = 2;

    

    [seg addTarget:self action:@selector(segmentValueChange:) forControlEvents:UIControlEventValueChanged];

}


-(void)segmentValueChange:(UISegmentedControl*)seg

{

3、获得seg被选中的元素的下表,从而根据下标的不同而进行不同的操作

    NSLog(@"%d",seg.selectedSegmentIndex);

}


六、UIActionSheet(上推菜单)、UIAlertView(警报)及其属性——需要代理

#import "ViewController.h"


@interface ViewController ()<UIActionSheetDelegate,UIAlertViewDelegate>//注意这里加UIActionSheetUIAlertView的代理


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    //做两个按钮,一个按钮触发actionsheet,一个按钮触发警报

    [self makeTwoBtn];

    

    // Do any additional setup after loading the view, typically from a nib.

}


-(void)makeTwoBtn

{

    NSArray *arr = @[@"actionsheet",@"alertview"];

    for(int i = 0;i<arr.count;i++)

    {

        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

        btn.frame = CGRectMake(0, 64+i*40, 320, 30);

        [btn setTitle:arr[i] forState:UIControlStateNormal];

        [btn addTarget:self action:@selector(btnDown:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview:btn];

        btn.tag = 1000+i;

    }

}


-(void)btnDown:(UIButton*)btn

{

    switch (btn.tag) {

        case 1000://sheet

        {

            UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"工资收入" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"pp" otherButtonTitles:@"0-1000",@"1000-5000",@"5000-10000",@"10000-20000",@"20000-30000",@"30000以上", nil];

            //第一个参数是actionsheet的标题,第二个参数是代理由谁来遵守执行,第三个参数是取消按钮的title,第四个参数是重点按钮的title,最后一个参数是剩下的按钮的title

            [sheet showInView:self.view];

            //显示actionsheet的方法,用actionsheet调用showInView的方法,参数是要显示这个actionsheet的父视图

            [sheet release];

            break;

        }

        case 1001://alert

        {

            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警报" message:@"您的网络不好,换个地方使这个应用!" delegate:self cancelButtonTitle:@"好的" otherButtonTitles:@"不好", nil];

            [alert show];

            [alert release];

            break;

        }

        default:

            break;

    }

}


#pragma mark actionsheet的代理

//当点击任意一个actionsheet上的按钮后会触发下面代理

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

    NSLog(@"%d",buttonIndex);

}


#pragma mark alertview的代理

//当点击任意一个alertview上的按钮后会触发下面代理

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

{

    NSLog(@"%d",buttonIndex);

}


七、使用UISlider制作图片放大缩小的功能

-(void)makeUI

{

    UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(0, 64, 160, 160)];

    img.image = [UIImage imageNamed:@"2@2x.png"];

    [self.view addSubview:img];

    [img release];

    img.tag = 3000;

    

    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-30, 320, 30)];

    slider.maximumValue = 2.0;

    slider.value = 1;

    [self.view addSubview:slider];

    [slider release];

    

    [slider addTarget:self action:@selector(sliderValueChange:) forControlEvents:UIControlEventValueChanged];

}


-(void)sliderValueChange:(UISlider*)slider

{

    UIImageView *tempView = (UIImageView*)[self.view viewWithTag:3000];

    tempView.frame = CGRectMake(0, 64, 160*slider.value, 160*slider.value);

}


八、实时获取文本框输入的内容

- (void)viewDidLoad {

    [super viewDidLoad];

    

    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 64, 320, 40)];

    textField.borderStyle = UITextBorderStyleLine;

    textField.delegate = self;

    [self.view addSubview:textField];

    [textField release];

    

    //textField添加一个事件

    [textField addTarget:self action:@selector(textFieldEditChange:) forControlEvents:UIControlEventEditingChanged];//事件是编辑内容改变

    // Do any additional setup after loading the view, typically from a nib.

}


当输入框内容改变时,会调用这个方法

//-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

//{

//    NSLog(@"%@",textField.text);

//    return YES;

//}


-(void)textFieldEditChange:(UITextField*)textField

{

    NSLog(@"%@",textField.text);

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值