How to customize UISwitch button in iphone?

后端 未结 2 596
无人及你
无人及你 2020-11-29 08:49

I created a UISwitch using this code...

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


        
相关标签:
2条回答
  • 2020-11-29 09:26

    I used this solution: UICustomSwitch: it works customizing a UISlider and setting a max valure of 1.

    You can change the images of your switch, the right / left text and use it with a unique color on background (if you don't want to use images).

    The only change I did was about the name: UI is reserved for Apple classe, so I changed it for my own.

    0 讨论(0)
  • 2020-11-29 09:32

    You can not modify UISwitch control unless and until you write your own control,

    But best way so far, you can used UISegmentControl and handle event on it to switch the on.png and off.png images.

    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;

    and write checkOnOffState method code like this-

    -(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];
        }   
    }
    0 讨论(0)
提交回复
热议问题