簡體   English   中英

header 剖面圖 UITableView 中的標簽和按鈕

[英]Lable and button in the header section view UITableView

我正在嘗試在 header 部分視圖中添加一個部分標題 Label 和一個按鈕。 但它看起來是空的。 當我運行應用程序時,header 是空的。 第二部分代碼工作正常

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        if (section == 0){
            let label = UILabel.init(frame: CGRect.init(x: 17, y: 139, width: tableView.frame.size.width, height: 45))
                       label.textColor = UIColor.black
                       label.font = UIFont.systemFont(ofSize: 13.0)
                       label.textAlignment = .left
                       label.text = "   My Balances"
                       label.backgroundColor  = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1.00)
                       
                       let frame = tableView.frame
                       let height:CGFloat = 66

                       let button = UIButton(frame: CGRect(x: 306, y: 139, width: 15, height: 15))  // create button
                       button.tag = section
                       // the button is image - set image
                       button.setImage(UIImage(named: "remove_button"), for: .normal)

                       let headerView = UIView(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: height))  // create custom view
                       headerView.addSubview(button)   // add the button to the view
                       headerView.addSubview(label)
                       return headerView
                       //return label
                       
            //return label
            
        }
        else {
             let label = UILabel.init(frame: CGRect.init(x: 0, y: 241, width: tableView.frame.size.width, height: 45))
            label.textColor = UIColor.black
            label.font = UIFont.systemFont(ofSize: 13.0)
            label.textAlignment = .left
            label.text = "   My Customers"
            label.backgroundColor  = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1.00)
            
            return label
        }
    }

你沒有遵循正確的方法。 首先,您必須在viewDidLoad()中使用 tableview object 中的heightForHeaderInSection設置 header 視圖的高度,例如 -

tableView.heightForHeaderInSection = 250 

或通過使用它的委托方法 -

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 250
    }

您將 header 視圖的高度設置為等於 tableview 高度。 設置它小於它let height:CGFloat = 250 -

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        
            let label = UILabel.init(frame: CGRect.init(x: 0, y: 241, width: tableView.frame.size.width, height: 45))
            label.textColor = UIColor.black
            label.font = UIFont.systemFont(ofSize: 13.0)
            label.textAlignment = .left
            label.text = "   My Balances"
            label.backgroundColor  = UIColor(red: 0.95, green: 0.95, blue: 0.95, alpha: 1.00)
            
            let frame = tableView.frame
            let height:CGFloat = 250 

            let button = UIButton(frame: CGRect(x: 5, y: 10, width: 15, height: 15))  // create button
            button.tag = section
            // the button is image - set image
            button.setImage(UIImage(named: "remove_button"), for: .normal)

            let headerView = UIView(frame: CGRect(x: 0, y: 0, width: frame.size.width, height: height))  // create custom view
            headerView.addSubview(button)   // add the button to the view
            headerView.addSubview(label)
            return headerView
            //return label
            
        }

或者另一種方法是制作自定義可重復使用的 header 視圖,注冊為 header 視圖,最后將其出列。

您可以按照蘋果的文檔進行第二種方式 - https://developer.apple.com/documentation/uikit/views_and_controls/table_views/adding_headers_and_footers_to_table_sections

暫無
暫無

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

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