自定义选择器,一次可以选择两次

时间:2015-05-11 10:27:16

标签: ios swift ios8 uidatepicker

如何在iOS中设计此屏幕。

enter image description here

它可以一次选择两次,如果是这样可能是什么方法?

4 个答案:

答案 0 :(得分:3)

谢谢@Sudhin Davis,这是一个不错的主意,但最后我决定继续不做任何UI更改。我从@ Harry的评论中找到了解决方案。这是我为解决它而做的事情

$.ajax({
    url: "/ebays/prefilledcontentajax",
    type: "POST",
    cache: false,
    async: true,
    data: {
        Type: $("#Type").val(),
    },
    success: function (response) {
        console.log(JSON.parse(response.responseText));
        //or 
        console.log(JSON.parse(response.responseJSON));
    }
});

答案 1 :(得分:1)

我希望最好使用标签栏类型选择器视图,我们可以通过2个不同的按钮处理开始日期和结束日期。我已经展示了一个示例图像。我希望你能从给出的图像中理解。

选择starts按钮时,UIDatePicker会改变开始日期label,当选择ends按钮时,UIDatePicker会更改结束日期{ {1}}。 enter image description here

答案 2 :(得分:1)

您可以创建一个具有2个UIDatePickers的自定义视图,并将它们放入UIStackView中,也可以在上面添加标签。这是执行此操作的示例视图:

class IntervalPickerView: BaseView {
@IBOutlet weak var startDatePicker: UIDatePicker!
@IBOutlet weak var endDatePicker: UIDatePicker!

weak var delegate: IntervalPickerDelegate?

override func postInit() {
    startDatePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
    endDatePicker.addTarget(self, action: #selector(datePickerValueChanged(_:)), for: .valueChanged)
}

@objc func datePickerValueChanged(_ sender: UIDatePicker){
    let dateFormatter: DateFormatter = DateFormatter()
    dateFormatter.dateFormat = "HH:mm"
    let selectedTime = dateFormatter.string(from: sender.date)
    delegate?.didPickTime(selectedTime, isStart: sender == startDatePicker)
  }
 }

答案 3 :(得分:0)

我搜索了很多,但没有找到任何自定义UIDatePicker的示例,但是你可以查看这个link并创建一个自己的选择器,它不会是那个特定的日期选择器,但它将是一个选择器视图,您可以根据您的要求编写它。

iOS Programming Recipe 9: Adding Multiple Columns to UIPickerView