UIDatePicker 在 iOS14 上的新特性

iOS 9 到 iOS13.4,UIDatePicker 的樣式如圖


UIDatePicker

如果你的 UI 在 iOS14 上出現(xiàn)了問題偶摔,想修改回以前暇唾,可以設置 UIDatePicker
preferredDatePickerStyle 屬性

不同的顯示方式可能導致 UI 出現(xiàn)問題

if #available(iOS 13.4, *) {
    preferredDatePickerStyle = .wheels
}

這個新樣式是蘋果UIDatePicker 的更新,提供一個可供用戶點擊的更小 UI

@available(iOS 13.4, *)
public enum UIDatePickerStyle : Int {

    
    /// Automatically pick the best style available for the current platform & mode.
    case automatic = 0

    /// Use the wheels (UIPickerView) style. Editing occurs inline.
    case wheels = 1

    /// Use a compact style for the date picker. Editing occurs in an overlay.
    case compact = 2

    /// Use a style for the date picker that allows editing in place.
    @available(iOS 14.0, *)
    case inline = 3
}

preferredDatePickerStyle

實驗一下每個值的具體樣式:

let picker = UIDatePicker()
view.addSubview(picker)
        
picker.datePickerMode = .date
picker.locale = Locale.init(identifier: "zh_CN")

//        picker.frame =  CGRect(x: 0, y: 100, width: UIScreen.main.bounds.width, height: 300)
picker.center = view.center
picker.preferredDatePickerStyle = .automatic // 修改這個值觀察變化

preferredDatePickerStyle 設置為:
.automatic:swift 會自動選出合適的樣式
.wheels:如前文所提到的辰斋,顯示經典樣式
.compact:可點的小 UI策州,點按后彈出系統(tǒng)時間選擇控件(這是在一個 alert 中)
.inline:直接顯示時間選擇控件(在當前 UI)

.automatic
.wheels
.compact

.compact
. inline

關于 UIDatePickerpreferredDatePickerStyle,我比較感興趣的是它的 .compact宫仗,嘗試改變其樣式够挂,可以直接用在項目里,但灰色的背景不可以通過設置 backgroundColor = .white 去實現(xiàn)藕夫,backgroundColor 設置成任意其它值孽糖,都可以起效枯冈,但設置成 .white 后始終還是有個灰色底,猜想蘋果留這個底的原因是提示用戶這個控件可按办悟。所以如果要直接使用尘奏,可以和設計商量一下,換一個合適自家 APP 的底色誉尖。

如果一定要設置成白色罪既,可以在 UIDatePicker 的最上層插入一個白色的 View,設置其大小與 superview 相等

// .compact 時 底色顯示為白色
picker.subviews.first?.subviews.forEach { grayView in
    let view = UIView(frame: grayView.bounds)
    view.translatesAutoresizingMaskIntoConstraints = false
    view.backgroundColor = .white
    grayView.insertSubview(view, at: 0)
    view.topAnchor.constraint(equalTo: grayView.safeAreaLayoutGuide.topAnchor).isActive = true
    view.bottomAnchor.constraint(equalTo: grayView.safeAreaLayoutGuide.bottomAnchor).isActive = true
    view.leadingAnchor.constraint(equalTo: grayView.safeAreaLayoutGuide.leadingAnchor).isActive = true
    view.trailingAnchor.constraint(equalTo: grayView.safeAreaLayoutGuide.trailingAnchor).isActive = true
}

preferredDatePickerStyle 設置為 .compact時铡恕, 字色修改要用 tintColor 而非textColor

picker.tintColor = .black // 字色為黑色

但如上文所說琢感,底色為白色+背景色也是白色時,不易發(fā)現(xiàn)這是一個可點按的控件探熔。

白底黑字
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末驹针,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子诀艰,更是在濱河造成了極大的恐慌柬甥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件其垄,死亡現(xiàn)場離奇詭異苛蒲,居然都是意外死亡,警方通過查閱死者的電腦和手機绿满,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門臂外,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喇颁,你說我怎么就攤上這事漏健。” “怎么了橘霎?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵蔫浆,是天一觀的道長。 經常有香客問我姐叁,道長瓦盛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任七蜘,我火速辦了婚禮谭溉,結果婚禮上,老公的妹妹穿的比我還像新娘橡卤。我一直安慰自己扮念,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布碧库。 她就那樣靜靜地躺著柜与,像睡著了一般巧勤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弄匕,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天颅悉,我揣著相機與錄音,去河邊找鬼迁匠。 笑死剩瓶,一個胖子當著我的面吹牛,可吹牛的內容都是我干的城丧。 我是一名探鬼主播延曙,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼亡哄!你這毒婦竟也來了枝缔?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蚊惯,失蹤者是張志新(化名)和其女友劉穎愿卸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體截型,經...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡趴荸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宦焦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赊舶。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赶诊,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情园骆,我是刑警寧澤舔痪,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站锌唾,受9級特大地震影響锄码,放射性物質發(fā)生泄漏。R本人自食惡果不足惜晌涕,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一滋捶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧余黎,春花似錦重窟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扭仁。三九已至,卻和暖如春厅翔,著一層夾襖步出監(jiān)牢的瞬間乖坠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工刀闷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留熊泵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓甸昏,卻偏偏與公主長得像顽分,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子筒扒,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355