65.9K
CodeProject 正在变化。 阅读更多。
Home

自定义 UISlider

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.13/5 (7投票s)

2017年1月3日

CPOL

4分钟阅读

viewsIcon

24840

downloadIcon

307

本文描述了如何创建一个自定义的 UISlider,它在默认滑块的基础上增加了一些额外的功能和特性。

引言

本文描述了如何创建一个自定义的 UISlider,它在默认滑块的基础上增加了一些额外的功能和特性。 我们将要使用的类是 UISlider,它是 UIKit 的一部分。 它是一个视觉控件,用于从连续的值范围中选择单个值。

先决条件

首先,我们需要对面向对象概念有一个了解,并且需要了解 Objective-C 语言。

硬件:我们需要有一台 Mac,这是 iOS 开发的基本要求。

软件:要开始开发 iPhone 和 iPad 应用程序,Xcode 是我们唯一需要的工具。 Xcode 是 Apple 提供的一个集成开发环境 (IDE),它提供了我们启动应用程序开发所需的一切。

默认 UISlider 概述

UISlider 由各种元素组成,例如 轨道 - 它为我们提供了一个可以选择的数值范围,一个 滑块 - 它是一个旋钮,通过在轨道上滑动它来帮助我们选择所需的值。 当您移动滑块的滑块时,它会将更新后的值传递给附加到它的任何操作。 滑块的外观是可配置的; 您可以为轨道和滑块着色,并提供图像以显示在滑块的末端 (minimumValueImagemaximumValueImage)。 您可以通过编程或使用 Interface Builder 将滑块添加到您的界面中。

让我们从创建我们的演示项目开始。

1. 创建一个新的 Xcode 8 项目

我们将为我们的演示创建一个 Single View Application(单视图应用程序)

2. 将 UISlider 添加到视图

在这个演示中,我们将使用 Storyboard 将 UISlider 添加到我们的视图。 将 UISlider 拖到

你的 Main.Storyboard 文件中的视图上,并将元素连接到 IBOutlets 和 IBActions。 从属性检查器中,我们可以根据我们的需求给出 MinimumValueImage、MaximunValueImage、MinimunTrackColor、MaximumTrackColor、滑块的最小值和最大值等。

默认的 UISlider 缺少一些功能,例如刻度或工具提示,该工具提示显示用户通过移动滑块刚刚设置的滑块值。 因此,我们将构建我们的自定义 UISlider。

3. 构建一个自定义 UISlider 子类

在您的 Main.storyboard 文件中,转到您的 UISlider,然后在身份检查器中将您的自定义类设置为 CustomSlider。

4. 将刻度添加到滑块

现在为了在您的滑块上添加刻度,我们将在滑块下方插入一个视图。 创建一个属性 - noOfTicks - 在 CustomSlider.h 类中定义您希望在滑块中拥有的刻度数量。

在您的 CustomSlider.m 类中添加以下代码。 此方法将添加一个视图以在您的滑块上显示刻度。

现在您可以简单地从 ViewController.m 类中调用此方法,以将刻度功能添加到您的滑块。

所以你的滑块现在看起来像这样。

现在刻度的目的是,每当您滑动到特定值时,旋钮就会捕捉到最近的刻度线。 为了实现同样的功能,我们覆盖了 UISlider 子类中的 UIControl 方法。

4. 将 ToolTip 添加到 UISlider

我们可以向我们的 UISlider 添加另一个有用的功能,那就是 ToolTip。 工具提示用于向用户提供反馈,告诉他/她通过移动它刚刚设置的值。

为了确定滑块的值(每当它更新为新值时),我们必须在 UISlider 子类实现中覆盖一些 UIControl 方法

beginTrackingWithTouch: 中,我们必须检查触摸是否在滑块的旋钮边界内,然后相应地显示工具提示弹出窗口。 我们在工具提示出现/消失时添加了一个小的淡入/淡出效果。 在这里,工具提示是一个自定义的 UIView,用于显示滑块值。

5. 添加 ToolTip UIView 子类

我们必须构建一个小的视图来表示滑块值(使其具有工具提示般的外观)。 为此,我们将使用 UIBezierPath 创建两条路径:一条是矩形,另一条是附加到它的箭头。 为了呈现所需的外观,将两个路径合并在一起,并使用一个浮点值来表示滑块旋钮的位置。 我们可以通过我们子类的 drawRect: 方法来完成所有这些,通过该方法我们每次值更改时都会获得更新的视图。

因此,带有工具提示的滑块将如下所示

结论

这篇文章展示了如何自定义 UISlider 以添加刻度和捕捉功能,以及在您移动滑块旋钮时显示设置了哪个值(工具提示)。 这些功能非常有用,使用这个自定义类,它可以作为即插即用的替代品,无论您之前使用过 UISlider 视图。 感谢您的阅读。

© . All rights reserved.