2

是否可以修改 a 的选择指示器的色调UIDatePicker?还是可以将其删除,以便我可以添加自己的选择指示器图像?

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

4

2 回答 2

2

默认情况下没有更改选择指示器颜色的选项。你可以做一个解决方法。我会添加一个简单UIView的带有您选择的颜色和透明度的 alpha 值。根据原始选择指示器设置大小和坐标以覆盖它(尺寸为 280x44,标准选择器的坐标为 20/130 - 不确定,所以找出正确的值以防它们不匹配)。

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

希望这是你可以开始的东西。

在此处输入图像描述

于 2013-01-30T09:36:38.313 回答
0

这是我对放置在 UITableViewCell 内的 UIDatePicker 所做的,并且完全使用自动布局约束来调整大小。(我建议继承 UIDatePicker)。

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+ 上运行。

于 2016-06-01T04:53:53.153 回答