簡體   English   中英

如何在iPhone中自定義UISwitch按鈕?

[英]How to customize UISwitch button in iphone?

我用這段代碼創建了一個UISwitch ......

UISwitch *switch = [[UISwitch alloc]initWithFrame:CGRectMake(110, 230, 60, 60)];
[window addSubview:switchView];
[switchView release];

創建的按鈕將是....

在此輸入圖像描述

默認屬性是,

  1. 它包含“ ON ”和“ OFF ”狀態
  2. OFF按鈕為白色 ,ON按鈕為藍色

我想創建一個自定義開關,以便更改開關中的背景顏色和文本。 可能嗎? 請詳細解釋。

提前致謝,

Rajkanth

除非並且直到您編寫自己的控件,否則無法修改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];
    }   
}

我使用了這個解決方案: UICustomSwitch :它可以自定義UISlider並設置最大值為1。

您可以更改開關的圖像,右/左文本,並在背景上使用獨特的顏色(如果您不想使用圖像)。

我做的唯一改變是關於名稱:UI是為Apple classe保留的,所以我為自己更改了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM