当颜色不同时,让UISegmentControl的边缘看起来很烦人:
有没有办法删除或隐藏颜色或重塑UISegment来掩盖它?
第二个问题是如何从开/关/其他方式切换时以编程方式更改颜色?
注意:我使用过"回答你自己的问题"选项,因为我无法找到从角落边缘移除颜色的答案,并以这种方式解决了我的问题。
答案 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时,它现在看起来像这样:
选择索引1时就像这样: