我想先声明一下我是 iOS 新手。
我目前正在尝试创建一个侧推菜单,单击该菜单时每个菜单项旁边都有图标。我目前有侧推菜单与列出的几个菜单项一起使用,但是,我真的很难尝试获取每个项目旁边的图像。
我已经用下面的代码以编程方式编写了侧推菜单和列表项。
import UIKit
class SideMenuTable: UITableViewController {
let sideMenuImages = [UIImage(named: "Main"), UIImage(named: "Departments"), UIImage(named: "Deliveries"), UIImage(named: "Warehouse"), UIImage(named: "Help")]
var menu = [Menu]()
@IBOutlet weak var test: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Change Menu View"
menu = [
Menu(title: "Main"),
Menu(title: "Departments"),
Menu(title: "Deliveries"),
Menu(title: "Warehouse"),
Menu(title: "Help")
]
}
override func viewWillAppear(_ animated: Bool) {
if tableView.isHidden {
if let selectionIndexPath = tableView.indexPathForSelectedRow {
tableView.deselectRow(at: selectionIndexPath, animated: animated)
}
} else if tableView.isFocused {
if let selectionIndexPaths = tableView.indexPathForSelectedRow {
tableView.deselectRow(at: selectionIndexPaths, animated: animated)
}
}
super.viewWillAppear(animated)
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return menu.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "sideCell", for: indexPath)
let menuSide: Menu
// var image: UIImage = UIImage(named: ".png")
menuSide = menu[indexPath.row]
cell.textLabel!.text = menuSide.title
cell.textLabel?.textAlignment = .center
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if(indexPath.section == 1) {
if(indexPath.row == 3) {
dismiss(animated: true, completion: nil)
performSegue(withIdentifier: "Warehouse", sender: self)
} else {
NSLog("NO SELECTION AVAILABLE")
}
}
}
}
如下图所示。
] 1
我已经开始尝试通过将 UIImage 插入原型(prototype)单元格来解决我的问题。
但是,当我将 UIImage 作为导出连接到上面的代码时,我收到此错误。 (注意:在上面的代码中,outlet 被命名为 test)
这就是我卡住的地方。 我需要连接这个 socket ,以便为我拥有的各种菜单项添加图标。
我错过了什么? 对于为菜单项创建图标这一问题,是否有不同的解决方案?
我需要创建一个单独的子类吗?
最佳答案
您需要为 UITableviewcell 创建一个自定义类,您需要在其中为 ImageView 和标签创建 IBOutlet。
现在您可以在 cellForRowAtIndexPath 方法中访问它。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "sideCell", for: indexPath) as YourCustomCell
let menuSide: Menu
var image: UIImage = UIImage(named: ".png")
menuSide = menu[indexPath.row]
cell.customLabel!.text = menuSide.title
cell.customLabel?.textAlignment = .center
Cell.imgViewName.image = image
return cell
}
这里的 customLabel 和 imgViewName 是您的 IBOutlets 的名称,您需要将其从 Storyboard 中拖入您的自定义单元格,还可以通过选择该特定单元格来提供 Storyboard 中自定义单元格的名称。
关于ios - UIImages 作为侧推菜单中的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51503141/