将背景图像上方的文本添加到uiswitch

时间:2011-10-16 17:38:25

标签: iphone objective-c ios4 background-image uisegmentedcontrol

我的自定义UISegmented控件具有[针对每个州]的背景图像。 如何在图像上方添加文字[对于每个州,这意味着当选择索引0时我会有特定的颜色和字体]?

以下是我的UISegmented控件的外观:

UISegmentedControl *customUISC=[[UISegmentedControl alloc] initWithItems:[[[NSMutableArray alloc] initWithObjects:@"ON",@"OFF",nil] autorelease]];

    [customUISC setFrame:CGRectMake(11,14,298,28)];
    customUISC.selectedSegmentIndex=0;
    customUISC.segmentedControlStyle=UISegmentedControlStyleBar;

    [customUISC setImage:[UIImage imageNamed:@"FirstTabActive.png"] forSegmentAtIndex:0];
    [customUISC setImage:[UIImage imageNamed:@"SecondTab.png"] forSegmentAtIndex:1];
    [customUISC addTarget:self action:@selector(checkOnOffState:) forControlEvents:UIControlEventValueChanged];

,checkOnOffState方法如下:

-(IBAction)checkOnOffState:(id)sender{

UISegmentedControl *iSeg=(UISegmentedControl *)sender;

if(iSeg.selectedSegmentIndex==0){

    [iSeg setImage:[UIImage imageNamed:@"FirstTabActive.png"] forSegmentAtIndex:0];
    [iSeg setImage:[UIImage imageNamed:@"SecondTab.png"] forSegmentAtIndex:1];
}
else {

    [iSeg setImage:[UIImage imageNamed:@"FirstTab.png"] forSegmentAtIndex:0];
    [iSeg setImage:[UIImage imageNamed:@"SecondTabActive.png"] forSegmentAtIndex:1];
}   
}

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全明白你所追求的是什么,但你能否只使用UILabels(位于图像上方)。然后,您可以使用myLabel.text和myLabel.textColor轻松更改颜色和文本。

希望这在某种程度上有所帮助!