在下拉菜单的顶部放置徽标-Swift

时间:2020-02-21 13:18:54

标签: swift

祝您有美好的一天。我使用Tableview创建了一个菜单,我想在此菜单的顶部添加徽标和标签,就像在android图像中一样。如何使菜单看起来像在Android上一样?在创建的表格视图中,显示菜单的名称和图标。与Android一样,我想在菜单顶部添加徽标。

Updated version

iOS Menu android Menu

class MyMenuTableViewController: UITableViewController {
    let keychain = KeychainSwift()

    private let menuOptionCellId = "Cell"
    var selectedMenuItemLogin : Int = 0
    var selectedMenuItem : Int = 0
    let menuItem : [String] = ["Giriş"]
       let menuIteminLogin : [String] = ["MENUITEM1" , "MENUITEM2" , "MENUITEM3","MENUITEM4"]

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.contentInset = UIEdgeInsets(top: 64.0, left: 0, bottom: 0, right: 0)
        tableView.separatorStyle = .singleLine
        tableView.backgroundColor =  UIColor(hex: 0x464646)
        tableView.scrollsToTop = false

        clearsSelectionOnViewWillAppear = false

        let loginKeychain = keychain.get("LoginSuccess")

        tableView.selectRow(at: IndexPath(row: selectedMenuItem, section: 0), animated: false, scrollPosition: .middle)        
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
 return menuIteminLogin.count
      }

     var imageinLoginCell : [String] = ["gift.png" , "clock.png", "graphic.png","graphic.png"]

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        var cell = tableView.dequeueReusableCell(withIdentifier: menuOptionCellId)

                  if loginKeychain == "2" {
                    cell!.textLabel?.text = menuIteminLogin[indexPath.row]
                    cell!.imageView!.image  = UIImage(named: imageinLoginCell[indexPath.row])
                    cell!.textLabel?.font = UIFont(name: "Helvetica-Bold", size: 18)
                    cell?.textLabel?.textAlignment = .right
                    if let myImage = UIImage(named: imageinLoginCell[indexPath.row]) {
                        let tintableImage = myImage.withRenderingMode(.alwaysTemplate)
                        cell!.imageView!.image = tintableImage
                    }
                    cell!.imageView!.tintColor = UIColor.white

                    if (indexPath.row == 2){
                        cell!.backgroundColor = UIColor(hex: 0xcf0700)
                        cell!.textLabel?.font = UIFont(name: "Helvetica-Bold", size: 19)
                    }
        }

        return cell!
    }

    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 50.0
    }

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
          let loginKeychain = keychain.get("LoginSuccess")
        if loginKeychain == nil {
                   if (indexPath.row == selectedMenuItem) {
                         return
                     }

                     selectedMenuItem = indexPath.row

                     let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
                     var destViewController : UIViewController

                     switch (indexPath.row) {
                              case 0:
                                  destViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginViewNew")
                                  break

                              default:  destViewController = mainStoryboard.instantiateViewController(withIdentifier: "LoginViewNew")
                                              break

                     }
                     sideMenuController()?.setContentViewController(destViewController)
             ....
    }

}

1 个答案:

答案 0 :(得分:0)

使用“ tableView(_ tableView:UITableView,viewForHeaderInSection部分:Int)-> UIView?” 并且此功能用于高度“ tableView(_ tableView:UITableView,heightForHeaderInSection部分:Int)-> CGFloat” 它将停留在顶部,列表将在其下方滚动。

相关问题