菜鸟教程小白 发表于 2022-12-11 18:04:34

ios - UIDatePicker 最小和最大日期不变


                                            <p><p>我正在使用 Xcode 8.0 并在 iOS 10 上使用 Swift 3 进行构建。</p>

<p>我的 ViewController 中有 UIDatePicker,作为 socket 连接:</p>

<pre><code>@IBOutlet weak var datePicker: UIDatePicker!
</code></pre>

<p>我正在尝试为其设置最大和最小日期。我正在使用的代码:</p>

<pre><code>self.datePicker.minimumDate = Date()
self.datePicker.maximumDate = Date(timeIntervalSinceNow: 60*60*24*365)
self.datePicker.datePickerMode = UIDatePickerMode.date
</code></pre>

<p>不工作 - 日期选择器可以在时间上无限地前后移动。</p>

<p>问题是 - 我在这里错过了什么?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>不幸的是,我昨天遇到了同样的问题,在搜索之后找不到解决方案。我想出了自己的最大/最小日期实现来代替内置日期,这并不理想,但它可以工作。</p>

<pre><code>func datePickerDidChangeDate(sender: UIDatePicker) {
    let maxDate = Date(timeIntervalSinceNow: 60*60*24*365)
    let minDate = Date()

    if sender.date.compare(minDate) == .orderedAscending || sender.date.compare(maxDate) == .orderedDescending {
      // Date is invalid
      sender.setDate(Date()) // Set selected date to now.
      return
    }
}
</code></pre>

<p>还要注意做整个 <code>60*60*24*365</code> 是一个坏主意,您应该改用 <code>NSCalendar.dateByAddingComponents</code> 但这完全是一个完全不同的问题。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UIDatePicker 最小和最大日期不变,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40610708/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40610708/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UIDatePicker 最小和最大日期不变