我使用此代码创建了一个UISwitch ......
UISwitch *switch = [[UISwitch alloc]initWithFrame:CGRectMake(110, 230, 60, 60)];
[window addSubview:switchView];
[switchView release];
创建的按钮将是....
默认属性为
我想创建一个自定义开关,以便背景颜色和应改变开关中的文字。可能吗?请详细解释。
先谢谢,
Rajkanth
答案 0 :(得分:20)
除非并且直到您编写自己的控件,否则无法修改UISwitch控件,
但到目前为止最好的方法是,您可以使用UISegmentControl并在其上处理事件来切换on.png和off.png图像。
UISegmentedControl* switchView=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"On",@"Off",nil] autorelease]];
[switchView setFrame:CGRectMake(20,365,140,28)];
switchView.selectedSegmentIndex=0;
switchView.segmentedControlStyle=UISegmentedControlStyleBar;
[switchView setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[switchView setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
[switchView addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];
self.navigationItem.titleView=switchView;
并编写checkOnOffState方法代码,如下所示 -
-(IBAction)checkOnOffState:(id)sender{
UISegmentedControl* tempSeg=(UISegmentedControl *)sender;
if(tempSeg.selectedSegmentIndex==0){
[tempSeg setImage:[UIImage imageNamed:@"onSelected.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"off.png"] forSegmentAtIndex:1];
}
else{
[tempSeg setImage:[UIImage imageNamed:@"on.png"] forSegmentAtIndex:0];
[tempSeg setImage:[UIImage imageNamed:@"offSelected.png"] forSegmentAtIndex:1];
}
}
答案 1 :(得分:2)
我使用了这个解决方案:UICustomSwitch:它可以自定义UISlider并设置最大值为1.
您可以更改开关的图像,右/左文本,并在背景上使用独特的颜色(如果您不想使用图像)。
我做的唯一改变是关于名称:UI是为Apple classe保留的,所以我为自己更改了它。