0

我正在尝试使用RCSwitch,但不幸的是它不起作用,因为它似乎仅限于 29px 的标准高度。我的开关高 35 像素(它对我的应用程序更有效)。它看起来像这样:

在此处输入图像描述

我的目标是通过像普通 UISwitch 动画中一样穿过矩形的旋钮,将动画设置为另一个状态,在该状态下显示月亮而不是太阳。

但如前所述,当我使用 RCSwitch 时,结果如下:

在此处输入图像描述

看起来像垃圾。

我也试过TTSwitch无济于事,因为它似乎不适用于图像,只有标签。

谁能给我建议,无论是如何在其中一个类中实现它,或者甚至以您认为会好的完全不同的方式实现它?

4

2 回答 2

1

您可以尝试使用我朋友的这个自定义扩展:BMXSwitch。它是完全可定制的,并带有一个示例项目来开始使用它。此外,它还支持 CocoaPods。

于 2013-05-27T00:11:17.137 回答
0

只需构建您自己的自定义开关。具有 35 点高度的 UIView。再加上太阳和月亮在末端的背景图像。在旋钮的视图中嵌入另一个图像。

添加一个点击手势识别器,它将旋钮图像的位置更改到另一端,并使用手势回调来更改指示开关状态的 BOOL 属性。设置属性会将旋钮移动到相关位置。

一旦你得到这个工作,添加一个滑动手势识别器来处理滑动并移动旋钮的位置并更改属性。

完成后,处理 touchesMoved 以更改旋钮的 x 位置。touchesEnded 检查旋钮应该在哪里结束 - 如果触摸在开关的前半部分结束,则将旋钮向左移动,否则向右移动。

按复杂程度列出要完成的事情。您可能会发现对于您的应用程序来说,只需一个轻击手势识别器就足够了,而且您无需实现滑动或触摸移动手势就可以生活。

于 2013-05-26T22:48:11.780 回答