【发布时间】:2013-01-30 08:49:13
【问题描述】:
是否可以修改UIDatePicker 的选择指示器的色调?或者可以将其删除,以便我可以添加自己的选择指示器图像?
我知道在 UIPickerView 的情况下,您可以禁用选择指示器,以便您可以提供自己的选择指示器图像。
【问题讨论】:
标签: ios objective-c cocoa-touch uidatepicker
是否可以修改UIDatePicker 的选择指示器的色调?或者可以将其删除,以便我可以添加自己的选择指示器图像?
我知道在 UIPickerView 的情况下,您可以禁用选择指示器,以便您可以提供自己的选择指示器图像。
【问题讨论】:
标签: ios objective-c cocoa-touch uidatepicker
默认情况下没有更改选择指示器颜色的选项。
你可以做一个解决方法。我会添加一个简单的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];
希望这是你可以开始的东西。
【讨论】:
这是我对放置在 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+ 上运行。
【讨论】: