ios - 如何快速创建带有图标和自定义文本颜色的下拉菜单?
问题描述
我想在 tableview 单元格中使用下拉菜单,我试图使用 AssistoLab / ( https://github.com/AssistoLab/DropDown )DropDown 库,但问题是我必须为下拉菜单选项文本提供不同的颜色。就我的研发而言,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!
}
推荐阅读
- java - 如何转换“收藏”
- web-applications - 将多个项目部署到单个应用服务中
- xpath - 使用 Google 表格进行 XPath 查询
- c# - 当宽度超过可用空间时,WPF 将中间控件移动到下一行
- android - Firebase 身份验证在登录时显示网络或超时错误
- forms - 为什么表单 input[type="checkbox"] 被 Firefox 视为只读但不应该?
- node.js - 测量在 docker 中运行的 NodeJS 应用程序的通用可扩展性定律的参数
- html - CSS位置相对:不考虑宽度
- google-cloud-platform - Increasing Google cloud snapshot frequency
- java - 无法通过 docker 容器读取文件