ios攻击uITESPICKER时的不同行为

发布于 2025-02-05 19:49:59 字数 1806 浏览 1 评论 0原文

下午好,

我发现了uidatePicker的行为有所不同:

我的uidatePicker设置(唯一的时间)

let timePicker: UIDatePicker = {
    let view = UIDatePicker()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.datePickerMode = .time
    if #available(iOS 13.4, *) {
        view.preferredDatePickerStyle = .wheels
    }
    return view
}()

(iPhone SE - 2nd Generation -ios 15.2)我可以点击出现时间滑块和键盘,使我可以输入时间。但是,当我的手机测试时(iPhone SE - 1st 一代-IOS 14.7.1)此行为不起作用(当我点击什么都没有发生,没有键盘,没有输入)。

使用我的手机时可以启用这一点吗?

我也有一个日期选择器(仅日期)

let datePicker: UIDatePicker = {
    let view = UIDatePicker()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.datePickerMode = .date
    if #available(iOS 13.4, *) {
        view.preferredDatePickerStyle = .wheels
    }
    return view
}()

TAP动作在模拟器或手机中不起作用。有没有办法激活它? (因此,快速输入一年更容易)

我如何添加和放置datePickers

我将它们添加到UistackView的初始化中,

init() {
    super.init(frame: CGRect.zero)

    translatesAutoresizingMaskIntoConstraints = false

    axis = .vertical
    alignment = .center
    distribution = .equalSpacing

    addArrangedSubview(datePicker)
    datePicker.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
    datePicker.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
    datePicker.heightAnchor.constraint(equalToConstant: 50).isActive = true

    addArrangedSubview(timePicker)
    timePicker.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
    timePicker.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
    timePicker.heightAnchor.constraint(equalToConstant: 50).isActive = true
}

谢谢您的时间。

Good afternoon,

I have detected a difference with UIDatePicker's behaviour:

My UIDatePicker setup (Only time)

let timePicker: UIDatePicker = {
    let view = UIDatePicker()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.datePickerMode = .time
    if #available(iOS 13.4, *) {
        view.preferredDatePickerStyle = .wheels
    }
    return view
}()

On the simulator (iPhone SE - 2nd generation - iOS 15.2) I can tap on the time slider and a keyboard appears, allowing me to enter a time. But when testing on my phone (iPhone SE - 1st generation - iOS 14.7.1) this behaviour doesn't work (when I tap nothing happens, no keyboard, no input).

Is possible to enable this when using my phone ?

Also I have a date picker (only date)

let datePicker: UIDatePicker = {
    let view = UIDatePicker()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.datePickerMode = .date
    if #available(iOS 13.4, *) {
        view.preferredDatePickerStyle = .wheels
    }
    return view
}()

The tap actions doesn't work in simulator or on the phone. Is there a way to activate it ? (So it's easier to quickly enter a year)

How I add and lay the datepickers

I add them in the init of UIStackview

init() {
    super.init(frame: CGRect.zero)

    translatesAutoresizingMaskIntoConstraints = false

    axis = .vertical
    alignment = .center
    distribution = .equalSpacing

    addArrangedSubview(datePicker)
    datePicker.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
    datePicker.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
    datePicker.heightAnchor.constraint(equalToConstant: 50).isActive = true

    addArrangedSubview(timePicker)
    timePicker.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
    timePicker.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
    timePicker.heightAnchor.constraint(equalToConstant: 50).isActive = true
}

Thanks for your time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文