iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
自我挑戰組

30天Swift純Code之旅 - 鬧鐘篇系列 第 12

Swift純Code之旅 Day12. 「TableView(番外篇) - TableViewCell Accessory」

  • 分享至 

  • xImage
  •  

前言

現在我們已經很像IPhone的內建鬧鐘了,但是還是有一點不一樣(下圖紅框圈起處)
https://ithelp.ithome.com.tw/upload/images/20210922/20108999XI8uodWF1V.jpg

因此今天就要來完成最後的兩小塊拼圖之一:「Accessory」。

實作

可以看到前三個Cell的最右邊都有一個符號:「>」,因為這是屬於Cell在一部分,
因此我們需要到addAlarmTableViewCell中,新增以下程式碼,就可以讓他出現囉!

 override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        // 讓TalbeViewCell 的右邊出現:「 > 」符號
        self.accessoryType = .disclosureIndicator
        
        self.backgroundColor = #colorLiteral(red: 0.1734634042, green: 0.1683282256, blue: 0.1771324873, alpha: 1)
        setViews()
        setLayouts()
    }

就出現囉!
https://ithelp.ithome.com.tw/upload/images/20210926/2010899931eF0WvgrJ.png

疑? 是不是太淡了些? 那讓我們來改變一下他的顏色在執行一次吧!

// Set accessory的顏色
self.tintColor = .white

https://ithelp.ithome.com.tw/upload/images/20210926/20108999hUA08OSjJi.png

什麼! 居然沒變?
沒錯! 那是因為 .disclosureIndicator 是不可以改變顏色的,所以我們只好自己做一個View替代它囉!

若忘記如何使用Xcode內建圖片庫改變View的圖片,可以去看前面的文章參考一下

let detailImageView: UIImageView = {
        // 設定這個 imageView 的圖案為 "chevron.right"
        let imageView = UIImageView(image: UIImage(systemName: "chevron.right"))
        // 設定這個 imageView 的顏色為灰色
        imageView.tintColor = .lightGray
        return imageView
    }()

那View做完了之後,還得把他放入accessory裡面讓他顯示在TableViewCell上面

override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        // 設定accessoryView 為 detailImageView(剛剛製作的View)
        self.accessoryView = detailImageView
        
        self.backgroundColor = #colorLiteral(red: 0.1734634042, green: 0.1683282256, blue: 0.1771324873, alpha: 1)
        setViews()
        setLayouts()
    }

接著執行看看吧!
https://ithelp.ithome.com.tw/upload/images/20210926/20108999qz4mKHCtyi.png

那我們就差最後一個欄位內的按鈕不同了,明天來將它完成吧/images/emoticon/emoticon07.gif


上一篇
Swift純Code之旅 Day11. 「TableView(3) - 實作Delegate & DataSource」
下一篇
Swift純Code之旅 Day13. 「TableView(4) - 使用兩個TableViewCell」
系列文
30天Swift純Code之旅 - 鬧鐘篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言