更改 UISegmentedControl 的颜色并以编程方式删除边缘 iOS7+
Change color of UISegmentedControl and remove edges programmatically iOS7+
当颜色不同时,UISegmentControl 的边缘看起来像这样很烦人:
有没有办法删除或隐藏颜色或重塑 UISegment 以掩盖它?
第二个问题是如何在从 on/off/other 切换时以编程方式更改颜色?
注意:我使用了 "answer your own question" 选项,因为我找不到从角边缘去除颜色的答案并以这种方式解决了我的问题。
要更改 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/Other) 更改颜色,请使用以下命令:
- (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 时现在看起来像这样:
选择索引 1 时像这样:
当颜色不同时,UISegmentControl 的边缘看起来像这样很烦人:
有没有办法删除或隐藏颜色或重塑 UISegment 以掩盖它?
第二个问题是如何在从 on/off/other 切换时以编程方式更改颜色?
注意:我使用了 "answer your own question" 选项,因为我找不到从角边缘去除颜色的答案并以这种方式解决了我的问题。
要更改 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/Other) 更改颜色,请使用以下命令:
- (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 时现在看起来像这样:
选择索引 1 时像这样: