簡體   English   中英

如何在 swift 中創建帶有圖標和自定義文本 colors 的下拉菜單?

[英]How to create dropdown with icon and custom text colors in swift?

我想在 tableview 單元格中使用下拉菜單,我試圖使用 AssistoLab / ( https://github.com/AssistoLab/DropDown )DropDown 庫,但問題是我必須為下拉菜單選項文本提供不同的 colors。 就我的 R & D 而言,AssistoLab/DropDown 是不可能的。 如果有人有一些想法請幫助我。

import UIKit
import DropDown



class AddWorkoutCategoryTableViewCell: UITableViewCell {

    
    @IBOutlet weak var dropDownView: UIView?
    
    
    let dropDown = DropDown()
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
    
    
    func configureGenderDropDown() {
        let blackColor = UIColor.black // 1.0 alpha
        let defaultDropDownBackgroundColor = blackColor.withAlphaComponent(0.7) // 0.8 alpha
        DropDown.appearance().textColor = UIColor.white
        dropDown.anchorView = dropDownView
        DropDown.appearance().selectedTextColor = UIColor.red
        DropDown.appearance().textFont = UIFont.systemFont(ofSize: 15)
        DropDown.appearance().backgroundColor = defaultDropDownBackgroundColor
        DropDown.appearance().selectionBackgroundColor = UIColor.black
        DropDown.appearance().cellHeight = 40
        dropDown.selectRow(at: 3)
        
        dropDown.dataSource = ["Sendworkout", "Edit Workout", "Duplicate workout", "Delete workout"]
    }

}

在此處輸入圖像描述

//ViewController.swift


import UIKit
import DropDown

class ViewController: UIViewController {
    @IBOutlet weak var btn: UIButton!
    let dropDown = DropDown()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let a = UILabel()
        dropDown.dataSource = ["pencil.circle", "scribble", "trash.fill"]
        let icons = ["pencil.circle", "scribble", "trash.fill" ]
        dropDown.anchorView = btn
        
        
        dropDown.cellNib = UINib(nibName: "MyDropDownCell", bundle: nil)
        dropDown.customCellConfiguration = { (index: Index, item: String, cell: DropDownCell) -> Void in
           guard let cell = cell as? MyDropDownCell else { return }

           // can use attrubted string for colored text
           cell.myText.text = "Hello \(index)"
           cell.logoImageView.image = UIImage(systemName: icons[index])
        }
        
    }

    @IBAction func go(_ sender: Any) {
        dropDown.show()
    }
    
}

    //
    //  MyDropDownCell.swift
    
    //
    //  Created by developer on 6/3/21.
    //
    
        import UIKit
        import DropDown
        class MyDropDownCell: DropDownCell {
            @IBOutlet weak var logoImageView: UIImageView!
            
            @IBOutlet weak var myText: UILabel!
            
            
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM