iOS 分段选择控件 开关按钮 滑杆

本文详细介绍了在iOS中如何使用分段选择按钮、开关按钮和滑杆。通过代码示例展示了它们的初始化、事件响应及自定义样式。同时分享了关于程序执行顺序和数据初始化的心得体会,提醒开发者注意避免在for循环和定时器中重复初始化导致的问题。

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

分段选择按钮

1.使用多个按钮的时候,可以选择分段选择按钮

2.初始化:

  UISegmentedControl *segment = [ [UISegmentedControl alloc] initWithItems: @[@“娱乐”,@“军事”,@“科技”] ];

segment.frame = CGRectmake(100,100,250,40);

segment.momentary = YES;

[self.view addSubview: segment];

分段选择按钮和其他按钮一样,点击其中一个的时候也会触发响应的事件

在导航栏上添加分段按钮,下面是代码:

 NSArray *segmentedArray = [NSArray arrayWithObjects:@"按钮1",@"按钮2",nil];
    
   UISegmentedControl *segmentedControl = [[UISegmentedControl alloc]initWithItems:segmentedArray];
    
    segmentedControl.frame = CGRectMake(0.0, 0.0, 140.0, 30.0);
    
    segmentedControl.selectedSegmentIndex = 0;
    
    segmentedControl.tintColor = [UIColor colorWithRed:1.000 green:0.991 blue:0.917 alpha:1.000];

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

    [self.navigationController.navigationBar.topItem setTitleView:segmentedControl];


开关按钮

1.一般需要记录用户设置的状态

  1⃣️:可以用后台提供的借口 设置开关按钮的开和关 (可以在不同的设备之间同步信息)

  2⃣️:在本地保存设置 (只能在一台手机上保存状态)

2.初始化以及使用:

  UISwitch *switch = [ [ UISwitch alloc] initWithFrame : CGRectMake(70,70,60,40)];

  [self.view  addSubview:switch];

�️ : 设置Switch的默认状态

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

switch.on = [ defaults boolForKey : @“ isOn ”];

 [swith addTarget:self action:@selector(switchAction:) forControlEvents:UIControlEventValueChanged];

�️:开关按钮的方法实现:

- (void) switchAction:(UISwitch *) sender{

    

    

     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    

    [defaults setBool:sender.isOn forKey:@"isOn"];

    

    NSLog(@"%d",sender.isOn);

    

}


�️    设置开关按钮 打开的时候 轨道的颜色

    

    swith.onTintColor = [UIColor redColor];

    

�️   设置开关按钮 关闭的时候 轨道的颜色

    

    swith.tintColor = [UIColor darkGrayColor];

    

�️   设置开关按钮 小圆圈颜色

    

    swith.thumbTintColor = [UIColor lightGrayColor];


滑杆

1.初始化以及使用:

UISlider *slider = [ [ UISlider alloc ] initWithFrame:CGRectMake:(100,300,200,10)];

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


�️:滑杆方法实现:

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

    animation.animationDuration = sender.value;

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

}


�️:   设置滑杆的最小值

    

    slider.minimumValue = 1;

    

�️: 设置滑杆的最大值

    

    slider.maximumValue = 10;

    

�️:  设置滑杆默认的位置

    

    slider.value = 1;

    

�️:  设置最小的轨道颜色

    

    slider.minimumTrackTintColor = [UIColor redColor];

    

�️: 设置滑杆最大值的轨道颜色

    

    slider.maximumTrackTintColor = [UIColor purpleColor];

    

�️:  设置小圆圈的颜色

    

    slider.thumbTintColor = [UIColor blackColor];

    

    [self.view addSubview:slider];


心得:

最近在 程序执行顺序  数据重复初始化两个问题上出了很多此错误,并且自己毫无知觉,就目前的情况来总结,有以下心得:

1⃣️:for循环会重复初始化,在创建窗口多个一样的视图的时候可以用(要在for循环内部写初始化代码)。如果定时器监听的方法内有for循环,那么初始化就不要写在for循环内部了,这样会导致系统内存暴涨,会崩溃。

2⃣️:定时器也会重复初始化,如果某一数据在程序运行时想要改变它,就不要写在定时器监听的方法内,这样会导致数据无法改变,因为定时器运行一次,数据更新一次。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值