iOS中各种控件的使用

本文详细介绍了iOS开发中常用的UI控件,包括开关 UISwitch、滑块 UISlider、段控 UISegmentedControl、步进器 UIStepper、进度条 UIProgressView 等,并提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController <UIAlertViewDelegate, UIActionSheetDelegate> {
    UILabel *_label;
    UIProgressView *progress;
    UIActionSheet *sheet;
}
@end

#import "RootViewController.h"
@implementation RootViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor yellowColor];
    
    /******************************switch*****************************/
    //宽高固定
    UISwitch *sw = [[UISwitch alloc] initWithFrame:CGRectMake(10, 30, 0, 0)];
    [self.view addSubview:sw];
    sw.on = NO;//设置默认开关
    NSLog(@"%d", sw.on);
    sw.onTintColor = [UIColor purpleColor];//开的颜色
//    sw.thumbTintColor = [UIColor yellowColor];//圈的颜色
//    sw.tintColor = [UIColor greenColor];//关的颜色
//    [sw setOnImage:[UIImage imageNamed:@"main_left_nav.png"]];//设置开始的图片
//    [sw setOffImage:[UIImage imageNamed:@"main_left_nav.png"]];
    [sw addTarget:self action:@selector(switchBackGround:) forControlEvents:UIControlEventValueChanged];
    
    
    /******************************slider*****************************/
    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(10, 70, 250, 0)];
    [self.view addSubview:slider];
    
    [slider setMinimumValue:0];//最小值
    [slider setMaximumValue:100];//最大值
    [slider setValue:50 animated:YES];//当前值
    
    [slider setMinimumValueImage:[UIImage imageNamed:@"main_left_nav.png"]];//最小值图片
    [slider setMaximumValueImage:[UIImage imageNamed:@"main_left_nav.png"]];//最大值图片
    
//    [slider setMinimumTrackImage:[UIImage imageNamed:@"main_left_nav.png"] forState:UIControlStateNormal];
//    [slider setMaximumTrackImage:[UIImage imageNamed:@"main_left_nav.png"] forState:UIControlStateNormal];
    
    [slider setMaximumTrackTintColor:[UIColor redColor]];
    [slider setMinimumTrackTintColor:[UIColor greenColor]];
    
    [slider setThumbTintColor:[UIColor clearColor]];
    
    [slider setThumbImage:[UIImage imageNamed:@"main_left_nav.png"] forState:UIControlStateNormal];
    [slider setThumbImage:[UIImage imageNamed:@"main_left_nav.png"] forState:UIControlStateHighlighted];
    
    [slider addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
    
    
    /******************************segment*****************************/
    UIImage *image = [UIImage imageNamed:@"main_left_nav.png"];
    UISegmentedControl *sc = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"aaa", image, @"ccc", @"ddd", nil]];
    sc.frame = CGRectMake(10, 120, 300, 40);
    [self.view addSubview:sc];
    
    [sc setSegmentedControlStyle:UISegmentedControlStyleBar];
//    [sc setMomentary:YES];//自动弹起
    NSLog(@"%d",sc.numberOfSegments);//一共有多少个segment
//    [sc setApportionsSegmentWidthsByContent:YES];//自适应宽度
    
//    [sc insertSegmentWithImage:nil atIndex:0 animated:YES];
//    [sc insertSegmentWithTitle:nil atIndex:0 animated:YES];
    
//    [sc titleForSegmentAtIndex:0];//取title
//    [sc imageForSegmentAtIndex:0];//取图
    
    [sc insertSegmentWithTitle:@"haha" atIndex:sc.numberOfSegments animated:YES];//添加一个
//    [sc removeSegmentAtIndex:sc.numberOfSegments animated:YES];//删除
//    [sc setEnabled:NO forSegmentAtIndex:2];//关闭某一个segment
    [sc setBackgroundImage:[UIImage imageNamed:@"header_bg.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//最后一个参数是横屏还是竖屏
//    [sc setDividerImage:[UIImage imageNamed:@""] forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];//间隔图片
    
    [sc addTarget:self action:@selector(segmentChange:) forControlEvents:UIControlEventValueChanged];
    
    /******************************stepper*****************************/
    UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(30, 180, 50, 20)];
    [self.view addSubview:stepper];
    _label = [[UILabel alloc] initWithFrame:CGRectMake(30, 230, 200, 40)];
    _label.font = [UIFont boldSystemFontOfSize:20];
    [self.view addSubview:_label];
    _label.text = [NSString stringWithFormat:@"%lf", stepper.value];//默认从0到100
    [stepper addTarget:self action:@selector(stepperChange:) forControlEvents:UIControlEventValueChanged];
    
    [stepper setMinimumValue:10];
    [stepper setMaximumValue:50];
    
    [stepper setStepValue:0.01];
    
    [stepper setWraps:YES];
    [stepper setAutorepeat:NO];//长按是否自动
    [stepper setContinuous:YES];//长按是否自动加(过程是否显示)
    
    
    
    /******************************progress*****************************/
    progress = [[UIProgressView alloc] initWithFrame:CGRectMake(10, 280, 300, 30)];
    [self.view addSubview:progress];
    [progress setProgressViewStyle:UIProgressViewStyleBar];
//    [progress setProgress:0.2 animated:YES];
    
    [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(refresh) userInfo:nil repeats:YES];
    [progress setProgressTintColor:[UIColor greenColor]];
    [progress setBackgroundColor:[UIColor yellowColor]];
    
    
    /******************************UIActivityIndicatorView*****************************/
    UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(10, 330, 300, 20)];
    [self.view addSubview:activity];
    [activity startAnimating];
    [activity stopAnimating];
    
//    [activity setHidesWhenStopped:YES];//设置停止的时候是否显示
    [activity isAnimating];
    [activity setColor:[UIColor yellowColor]];
    
    
    /******************************TextView*****************************/
    //设置代理之后,在TextView中不能重写return键,TextField中可以重写return
    UITextView *text = [[UITextView alloc] initWithFrame:CGRectMake(10, 350, 300, 80)];
    [self.view addSubview:text];
    text.backgroundColor = [UIColor grayColor];
    
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
    view.backgroundColor = [UIColor blueColor];
//    text.inputView = view;//取代键盘
    
    text.inputAccessoryView = view;//在键盘上附加一个view
    
    [text release];
    
    
    /******************************AlertView*****************************/
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(0, 0, 100, 100);
    [btn addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
    
    
    /******************************ActionSheet*****************************/
//    UIActionSheet *sheet = [[UIActionSheet alloc] initWithFrame:CGRectMake(10, 200, 300, 40)];
//    [sheet showInView:self.view];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(10, 200, 300, 30);
    [button addTarget:self action:@selector(butttClick) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    sheet = [[UIActionSheet alloc] initWithTitle:@"请选择" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"从照相机获取" otherButtonTitles: @"从相册获取", nil];
    
}

- (void)butttClick {
    [sheet showInView:self.view];
}

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    NSLog(@"%d",buttonIndex);
}

- (void)buttonClick {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"标题" message:@"你喜欢我吗" delegate:self cancelButtonTitle:@"喜欢" otherButtonTitles:@"很喜欢",@"超级喜欢", nil];
    [alert show];
    [alert release];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    NSLog(@"%d",buttonIndex);
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UIView *view  in self.view.subviews) {
        if ([view isKindOfClass:[UITextView class]]) {
            UITextView *tv = (UITextView *)view;
            [tv resignFirstResponder];
        }
    }
}

- (void)refresh {
    if (progress.progress <= 1.0) {
//        progress.progress += 0.01;
        [progress setProgress:(progress.progress+0.001) animated:YES];
    }
}

- (void)stepperChange:(UIStepper *)stepper {
    _label.text = [NSString stringWithFormat:@"%lf", stepper.value];
}

- (void)segmentChange:(UISegmentedControl *)sc {
    NSLog(@"%d",sc.selectedSegmentIndex);
}

- (void)switchBackGround:(UISwitch *)sw
{
    if (sw.on) {
        self.view.backgroundColor = [UIColor whiteColor];
    } else {
        self.view.backgroundColor = [UIColor blackColor];
    }
}

- (void)sliderChange:(UISlider *)slider
{
    NSLog(@"%f",slider.value);
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值