Iphone UI开关-从开/关更改为是/否
有人知道我可以如何将“开”和“关”的文本标签更改为“是”和“否”吗 我是和你一起做的Iphone UI开关-从开/关更改为是/否,iphone,uiswitch,Iphone,Uiswitch,有人知道我可以如何将“开”和“关”的文本标签更改为“是”和“否”吗 我是和你一起做的 ((UILabel *)[[[[[[switchControl subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Yes"; ((UILabel *)[[[[[[switchControl subviews] lastObject] subviews]
((UILabel *)[[[[[[switchControl subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:0]).text = @"Yes";
((UILabel *)[[[[[[switchControl subviews] lastObject] subviews] objectAtIndex:2] subviews] objectAtIndex:1]).text = @"No";
然而,随着iOS 4.2的发布,这一功能不再受支持(苹果可能并不推荐这一功能)
我的客户坚持选择是/否。如果有任何建议,我将不胜感激
非常感谢为此,您需要实现自定义UI开关。或者使用一个已经实现的:)(检查并)Vladimir的答案很好,但在我看来,这里有一个更好的实现: 除了设置自定义文本外,更容易更改UISwitch的大小和颜色,从而获得更清晰的结果
它是根据麻省理工学院的许可证发布的。看一看 事实证明,您可以使用以下项目创建自定义UI开关:
- 全景
- 按钮
- 两个UILabel
- 背景图像
- 布尔值
#import
导入到视图控制器中
接下来,使用Interface Builder将UIScrollView添加到视图中。滚动视图将是您的自定义UI开关。
接下来,将按钮和两个标签添加到滚动视图中。一个标签表示“是”,另一个表示“否”
将图像添加到按钮并将其类型设置为“自定义”。这是我使用的图像:
将标签放置在图像的蓝色和白色区域上。调整ScrollView,使其刚好足以显示图像的蓝色部分和拇指nob
将以下行添加到viewDidLoad:
self.mySwitch.layer.cornerRadius = 13.5;
mySwitch是ScrollView的名称,13.5是ScrollView高度的一半。上面的语句将ScrollView更改为具有类似UISwitch的圆形端点
要激活自定义开关,您需要将按钮“内部触碰”事件绑定到iAction。以下是我在事件处理程序中使用的代码:
-(IBAction)mySwitchButton:(id)sender {
self.myValue = !self.myValue;
CGPoint scrollPoint = CGPointMake((self.myValue)? 43.0: 0, 0.0);
[mySwitch setContentOffset:scrollPoint animated:YES];
}
其中myValue是包含开关状态的布尔变量,43.0是必须移动图像才能将开关置于关闭位置的点数
这就是全部 万岁!在iOS 6中,可以分别指定用于打开/关闭状态的图像。因此,这可用于显示是/否图像(或表示您希望使用的文本的任何图像,而不是先前限制的开/关) 图像应为77像素宽,27像素高,文本(每个州一个图像)应水平居中于77像素宽内。我使用透明背景作为文本,因此我仍然可以使用色调作为背景,这仍然适用于此
当然,只提供文本似乎更容易,而不必使用文本的图像,但至少我非常感谢这个新选项。在iOS 6中,可以指定用于UI开关开/关状态的图像,但不能指定文本。 这将在需要国际化时带来麻烦,因为 必须为每种语言提供图像文本,而不仅仅是文本。 此外,UISwitch图像的大小是固定的,限制了文本长度 基于以上原因,我喜欢JSWilson的答案:简单而灵活 为了使开发人员不再需要手动添加所需的控件,我编写了一个自定义的CRDScrollSwitch类,您可以在我的GitHub存储库中找到它:
很酷的代码,但对于iOS 6及以上版本,是否有这样的解决方案,但与iOS 5兼容?不幸的是,没有,这就是为什么这项功能备受期待的原因。如果你喜欢代码,请投赞成票:-)如果你只需要一些快速的英语是/否图片,这里是我使用的图片。随便拿吧如果操作系统介于5.0和6.0之间,该怎么办?不幸的是,这在iOS 7中不起作用。请参阅的讨论部分。我还定制了一个UI开关:@Rocotilos,那么苹果的批准呢?
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0"))
{
[mySwitch setOnImage: [UIImage imageNamed:@"UISwitch-Yes"]];
[mySwitch setOffImage:[UIImage imageNamed:@"UISwitch-No"]];
}