iOS15 UIButton新外觀設定

更新於 發佈於 閱讀時間約 8 分鐘

iOS15新出的按鈕外觀設定,變成像吃設定檔的方式
在一些圓角設定、圖片換位置好像有比較好用😗

用法

button.configuration = plainConfig
button.updateConfiguration() // 有需要更新的話

普通按鈕

raw-image
 let plainConfig: UIButton.Configuration = {
        // 普通按鈕
        var config = UIButton.Configuration.plain()
        config.title = "我是按鈕"
        return config
    } ()


圓角按鈕

raw-image
config.cornerStyle = .capsule


完整code(圓角+背景填充+圖片放右邊)

   let corneredConfig: UIButton.Configuration = {
        // 背景填充
        var config = UIButton.Configuration.filled()
        config.baseBackgroundColor = .systemMint
        // 圓角設定
        config.cornerStyle = .capsule
        // 設定圖片
        config.image = UIImage(systemName: "paperplane")
        // 圖片&標題對應位置
        config.imagePlacement = .trailing
        // 圖片&標題距離
        config.imagePadding = 5.0
        // 設定標題字型顏色

        var titleAttributes = AttributeContainer()
        titleAttributes.foregroundColor = UIColor.black
        titleAttributes.font = UIFont.systemFont(ofSize: 15.0)

        
        let title = AttributedString("送出", attributes: titleAttributes)
        config.attributedTitle = title
        return config

    } ()

不同CornerStyle

CornerStyle

CornerStyle

預設是Dynamic,會隨著dynamic字型改變。測試了一下大中小type

好像大圓角比較明顯,另外兩個差不多

raw-image

客製化圓角

raw-image


 config.background.cornerRadius = 15.0

邊框按鈕

raw-image
config.background.strokeColor = .systemMint
config.background.strokeWidth = 2.0

圖片換位置

// 圖片&標題對應位置
config.imagePlacement = .trailing
// 圖片&標題距離
config.imagePadding = 5.0

不同ImagePlacement

raw-image
raw-image


效果還不錯,all和leading看起來是一樣的

覺得這是最棒的改變,以前改個圖片位置超麻煩,用EdgeInset改來改去🙁

選取效果變化

raw-image


先做一個普通的邊框按鈕設定

    var borderedConfig: UIButton.Configuration = {
        var config = UIButton.Configuration.plain()
        config.background.backgroundColor = .white
        config.cornerStyle = .capsule
        config.image = UIImage(systemName: "paperplane")?.withTintColor(.systemMint, renderingMode: .alwaysOriginal)
        // 圖片&標題距離
        config.imagePadding = 5.0

        // 設定標題字型顏色

        var titleAttributes = AttributeContainer()
        titleAttributes.foregroundColor = UIColor.systemMint
        titleAttributes.font = UIFont.systemFont(ofSize: 15.0)
        let title = AttributedString("送出", attributes: titleAttributes)
        config.attributedTitle = title

        // 設置邊框
        config.background.strokeColor = .systemMint
        config.background.strokeWidth = 2.0

        return config

    } ()

UIConfigurationTextAttributesTransformer改變字體顏色(綠↔️白)

borderedConfig.titleTextAttributesTransformer = UIConfigurationTextAttributesTransformer { [weak self] incoming in
var outgoing = incoming
if let self, self.plainButton.isSelected {
        outgoing.foregroundColor = UIColor.white
  } else {
outgoing.foregroundColor = UIColor.systemMint
} return outgoing
}

背景變顏色(綠↔️白)

   func updateButtonConfiguration() {
        var config = plainButton.configuration
        if plainButton.isSelected {
            // 設置選中狀態的圖片和背景顏色
            config?.image = UIImage(systemName: "paperplane.fill")?.withTintColor(.white, renderingMode: .alwaysOriginal)
            config?.background.backgroundColor = .systemMint
        } else {
            // 設置正常狀態的圖片和背景顏色
            config?.image = UIImage(systemName: "paperplane")?.withTintColor(.systemMint, renderingMode: .alwaysOriginal)
            config?.background.backgroundColor = .white
        }
        plainButton.configuration = config
    }

點擊事件觸發

   @objc func click() {
        plainButton.isSelected.toggle()
        updateButtonConfiguration()
    }


快樂改按鈕😎

留言
avatar-img
留言分享你的想法!
avatar-img
Michelle Chen的沙龍
8會員
34內容數
紀錄iOS開發上遇到的問題或是一些流程筆記。主要都是Swift。
Michelle Chen的沙龍的其他內容
2024/09/06
本文介紹了使用KeyboardLayoutGuide的方法,以及在不同iOS版本和設備上遇到的佈局問題。透過調整TextView的底部對齊方式,成功解決了在模擬器和真實設備上出現的錯誤,提供了有用的建議給開發者。本文還探討了為何在iOS15與Xib的組合使用中會出現問題,以及解決方案。
Thumbnail
2024/09/06
本文介紹了使用KeyboardLayoutGuide的方法,以及在不同iOS版本和設備上遇到的佈局問題。透過調整TextView的底部對齊方式,成功解決了在模擬器和真實設備上出現的錯誤,提供了有用的建議給開發者。本文還探討了為何在iOS15與Xib的組合使用中會出現問題,以及解決方案。
Thumbnail
2024/08/07
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
2024/08/07
使用者回報的超級奇怪線上問題,用數字鍵盤(NumberPad)更改欄位時,送出後尾數都會消失。例如:30 ⭢ 3,52 ⭢ 5。 尋尋覓覓了兩天終於被我找到這篇,apple的奇葩的bug 重現條件 iOS17 手機設定是繁體中文語系 前一個用過的鍵盤是Cangjie倉頡 or Suchen
2024/07/03
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
2024/07/03
這篇文章探討瞭如何在iOS應用程式中客製化Alert,包括改變字體大小、內嵌連結以及讓Alert的高度隨著字數增長並提供scroll操作。同時使用SwiftUI進行客製化,並介紹瞭解決高度超出範圍後文字捲動與scrollView固定高度的方法。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
排版微系列調專門分享如何透過一些調整讓設計與排版更好看,並且每張設計都會說明為何調整的原因,以及原本設計可能有的問題。 如果你是設計初學者那這份內容會很適合你,因為會很細節的去講解排版原因,如果你看完喜歡,我每月會有三篇微調詳解固定分享給訂閱會員,歡迎訂閱。
Thumbnail
排版微系列調專門分享如何透過一些調整讓設計與排版更好看,並且每張設計都會說明為何調整的原因,以及原本設計可能有的問題。 如果你是設計初學者那這份內容會很適合你,因為會很細節的去講解排版原因,如果你看完喜歡,我每月會有三篇微調詳解固定分享給訂閱會員,歡迎訂閱。
Thumbnail
本文探討2024年UI/UX設計趨勢,包括深色模式和色彩適應性、微互動和動畫、3D元素與虛擬現實整合,以及以用戶為中心的數據驅動設計、無障礙設計和情感設計的新方法。
Thumbnail
本文探討2024年UI/UX設計趨勢,包括深色模式和色彩適應性、微互動和動畫、3D元素與虛擬現實整合,以及以用戶為中心的數據驅動設計、無障礙設計和情感設計的新方法。
Thumbnail
Notion 的 icon 功能提供了豐富的顏文字跟icon圖示可以使用, 但在正式文件或網頁發布時用顏文字有點不恰當, icon的顏色的選擇又只有十種,這時候可能會想要用自己上傳的logo檔案 要如何簡單的讓頁面更加豐富呢? 除了頁面 Page 以外, 還有
Thumbnail
Notion 的 icon 功能提供了豐富的顏文字跟icon圖示可以使用, 但在正式文件或網頁發布時用顏文字有點不恰當, icon的顏色的選擇又只有十種,這時候可能會想要用自己上傳的logo檔案 要如何簡單的讓頁面更加豐富呢? 除了頁面 Page 以外, 還有
Thumbnail
iOS15推出了新的按鈕外觀設定功能,讓設定變得更加直觀。使用不同的圓角設定和圖片位置可以輕鬆創建不同風格的按鈕。另外,新的選取效果變化功能也讓按鈕設計更加靈活。本文將介紹這些新功能的使用方法和效果。
Thumbnail
iOS15推出了新的按鈕外觀設定功能,讓設定變得更加直觀。使用不同的圓角設定和圖片位置可以輕鬆創建不同風格的按鈕。另外,新的選取效果變化功能也讓按鈕設計更加靈活。本文將介紹這些新功能的使用方法和效果。
Thumbnail
手把手帶你做風格海報! 一起來看看本次海報使用到的重點效果,大家可以跟著試試看! 本次使用素材: 點我下載素材一 點我下載素材二 (1) 製作背景 開啟新檔,畫布尺寸為 1080x1920 px。 並將素材一置入畫面後,使用選取工具將空白處選取1,直接點選生成填色2,並選擇合適的結果。
Thumbnail
手把手帶你做風格海報! 一起來看看本次海報使用到的重點效果,大家可以跟著試試看! 本次使用素材: 點我下載素材一 點我下載素材二 (1) 製作背景 開啟新檔,畫布尺寸為 1080x1920 px。 並將素材一置入畫面後,使用選取工具將空白處選取1,直接點選生成填色2,並選擇合適的結果。
Thumbnail
本次要來分享在Photoshop 新增的Ai功能,2023年強勢推出的「生成填色」,不只可以幫你的圖片無限延伸,還能自動生成素材,快速便利又好上手!
Thumbnail
本次要來分享在Photoshop 新增的Ai功能,2023年強勢推出的「生成填色」,不只可以幫你的圖片無限延伸,還能自動生成素材,快速便利又好上手!
Thumbnail
Grid Post這個App是為了IG排版而存在的,我很喜歡裡面的「全景剪裁」功能,讓讀者透過滑動把整張照片看完,帶來不一樣的視覺變化。
Thumbnail
Grid Post這個App是為了IG排版而存在的,我很喜歡裡面的「全景剪裁」功能,讓讀者透過滑動把整張照片看完,帶來不一樣的視覺變化。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News