修改UIDatePicker选择指示器色调颜色

是否可以修改UIDatePicker选择指示器的色调颜色? 或者它可以删除,以便我可以添加自己的选择指标图像?

我知道在UIPickerView的情况下,您可以禁用选择指示器,以便您可以提供自己的选择指示器图像。

默认情况下,没有选项可以更改选择指示器的颜色。 你可以做一个解决方法。 我会添加一个简单的UIView ,其中包含您选择的颜色和透明度的alpha值。 根据原始选择指示器确定尺寸和坐标以覆盖它(尺寸280×44,标准选择器的坐标为20/130 – 不确定,因此如果不匹配则找出正确的值)。

 UIView *overlayIndicator = [[UIView alloc] initWithFrame:CGRectMake(20, 130, 280, 44)]; overlayIndicator.backgroundColor = [UIColor redColor]; overlayIndicator.alpha = 0.5f; [yourDatePicker addSubview:overlayIndicator]; 

希望这是你可以开始的事情。

在此处输入图像描述

以下是我对UIDatePicker所做的事情,它放在UITableViewCell中,并且纯粹使用自动布局约束来resize。 (我建议inheritanceUIDatePicker)。

 let upperSelectorView = UIView() let lowerSelectorView = UIView() required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) upperSelectorView.backgroundColor = UIColor(colorLiteralRed: 127, green: 139, blue: 131, alpha: 0.45) self.addSubview(upperSelectorView) lowerSelectorView.backgroundColor = UIColor(colorLiteralRed: 127, green: 139, blue: 131, alpha: 0.45) self.addSubview(lowerSelectorView) } override func layoutSubviews() { super.layoutSubviews() print(self.frame.size.height) if (self.frame.size.height == 216) { //height it used in portrait. upperSelectorView.frame = CGRect(x: 0, y: 91, width: self.frame.size.width, height: 0.5) lowerSelectorView.frame = CGRect(x: 0, y: 125, width: self.frame.size.width, height: 0.5) } if (self.frame.size.height == 162) { //height it used in landscape. upperSelectorView.frame = CGRect(x: 0, y: 63, width: self.frame.size.width, height: 0.5) lowerSelectorView.frame = CGRect(x: 0, y: 98, width: self.frame.size.width, height: 0.5) } } 

经测试适用于iPhone 6和iPhone 6+。