代码改变世界

UI控件篇——UISlider与UISwitch

  张智清  阅读(5276)  评论(1编辑  收藏  举报

UISlider滑块控件
      UISlider实例提供一个控件,让用户通过左右拖动一个滑块(可称其为“缩略图”)来选择一个值。默认情况下,滑块的最小值为0.0,最大值为1.0。当然可以在属性面板中通过设置minimumValuemaximumValue来进行定制这两个值。如果要为控件两端设置样式,可以添加一对相关图像(minimumValueImagemaximumValueImage属性)来加强该设置,也可在代码中通过setMimimumTrackImage: forState:setMaximumTrackImage: forState: 方法来添加设置两端图片。 

      滑块的continuous属性控制在用户拖动缩略图时一个滑块是否持续发送值更新。设置为NO(默认为YES)时,用户释放缩略图时滑块仅发送一个动作事件。UISlider类还允许直接更新其缩略图组件,通过调用setThumbImage: forState:方法可定制自己的滑块图片。

自定义UISlider的样式和滑块的代码:

复制代码
//左右轨的图片
UIImage *stetchLeftTrack = [UIImage imageNamed:@"snow_bar.png"];
UIImage *stetchRightTrack = [UIImage imageNamed:@"sun_bar.png"];
//滑块图片
UIImage *thumbImage = [UIImage imageNamed:@"mark.png"];

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(30,320,257,7)];
slider.backgroundColor = [UIColor clearColor];
slider.value = 1.0;
slider.minimumValue = 0.7;
slider.maximumValue = 1.0;

[slider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[slider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
//注意这里务必加上UIControlStateHightlighted的状态,否则当拖动滑块时滑块将变成原生的控件
[slider setThumbImage:thumbImage forState:UIControlStateHighlighted];
[slider setThumbImage:thumbImage forState:UIControlStateNormal];

//滑块拖动时的事件
[slider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

//滑块拖动后的事件
[slider addTarget:self action:@selector(sliderDragUp:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:slider];
复制代码

UISwitch开关切换控件
UISwitch对象提供一个简单的开/关切换,允许用户选择一个布尔值。
 

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示