更改UISegmentedControl的颜色并以编程方式删除边缘iOS7 +

时间:2015-02-19 05:02:09

标签: ios objective-c uisegmentedcontrol uiswitch

当颜色不同时,让UISegmentControl的边缘看起来很烦人:

enter image description here

有没有办法删除或隐藏颜色或重塑UISegment来掩盖它?

第二个问题是如何从开/关/其他方式切换时以编程方式更改颜色?

注意:我使用过"回答你自己的问题"选项,因为我无法找到从角落边缘移除颜色的答案,并以这种方式解决了我的问题。

1 个答案:

答案 0 :(得分:1)

要更改UISwitch的颜色,您可以使用viewDidLoad方法中的以下内容:

//Custom colour
UIColor * customColor = [UIColor colorWithRed: 255/255.0f green: 239/255.0f blue: 54/255.0f alpha: 1.0f];
//sets custom colour tint of selected
[self.yourSwitch setTintColor:customColor];
//sets background colour using default UIColor option
[self.yourSwitch setBackgroundColor:[UIColor blackColor]];

这将给出与问题相同的外观。

要移除边缘,请使用viewDidLoad方法中的此代码:

//this sets a border with a rounded edge so the
self.yourSwitch.layer.borderWidth = 1.2f;
self.yourSwitch.layer.cornerRadius = 6.0;

要在不同位置(ON / OFF /其他)更改颜色,请使用以下命令:

- (IBAction)yourSwitchSelection:(UISegmentedControl *)sender {

    if (self.yourSwitch.selectedSegmentIndex == 1){
        UIColor * customColor = [UIColor colorWithRed: 255/255.0f green: 112/255.0f blue: 0/255.0f alpha: 1.0f];
        [self.yourSwitch setTintColor:customColor];
    }
    if (self.yourSwitch.selectedSegmentIndex == 0){

        UIColor * customColor = [UIColor colorWithRed: 255/255.0f green: 239/255.0f blue: 54/255.0f alpha: 1.0f];
        [self.yourSwitch setTintColor:customColor];
    }

}

当选择索引0时,它现在看起来像这样:

enter image description here

选择索引1时就像这样:

enter image description here