我需要在一个项目中实现一个自定义开关。目前我所发现的是,我们不能在实现方式中使用UISwitch进行更改,如下图所示。我关注了帖子,用谷歌搜索了stackoverflow和其他博客,但没有找到理想的解决方案。一种方法是使用this post中的UISegmented控件,但这也不能解决我的问题。
提前感谢您的帮助
发布于 2013-04-29 22:59:18
正如gasparuff所说,你也可以用UIButton来做这件事,只需设置图像:
[button setImage:[UIImage imageNamed:@"image_on"] forState:UIControlStateSelected];
[button setImage:[UIImage imageNamed:@"image_off"] forState:UIControlStateNormal];
当它被点击时,只需切换选定的属性。
- (void) buttonTap {
button.selected = !button.selected;
}
这将自动改变图像。
发布于 2013-06-28 01:39:03
你知道-[UISwitch setOnImage:]
和-[UISwitch setOffImage:]
,对吧?还有-[UISwitch setTintColor]
。我能看到的唯一缺点是,交换机本身将是标准的iOS交换机(圆形按钮),但除此之外,这将是最像iOS的解决方案。
在实现自己的on/offImage时,请记住大小限制,并且图像朝向开关的一侧是凹面。tintColor
可用于使开关的其余部分反映您的配色方案。您可能希望跟踪valueChanged
事件,因此更改色调颜色。
如果您需要在问题中显示的确切外观(方形开关按钮),那么您可能希望使用自定义控件,如@Caleb建议的那样。
发布于 2013-04-29 22:55:47
看起来你只是想让你的控件只有两种状态--启用和禁用。
一种简单的方法是创建2个png图像,并使用自定义的UIButton与背景图像,只需替换这2个图像每次点击按钮。
这是你想要做的,还是我误解了什么?
https://stackoverflow.com/questions/16281735
复制相似问题