VAAA VAAA - 4 months ago 8
Swift Question

How to create a custom view in the header of a form

I would like to know if its possible to create something like the image below.

enter image description here

I guess I have to create a custom view but any clue on how to do it?

Thanks

Answer

If you have a UITableView on the screen, you can achieve this by creating a custom table header view:

  1. Create a subclass of UIView -> CustomTableHeaderView
  2. Add a button inside it:

    class CustomTableHeaderView: UIView {
        var rightButton: UIButton
        override init(frame: CGRect) {
            rightButton = UIButton()
            let buttonWidth: CGFloat = 100
            // this is hardcoded for cimplicity, it's better to setup auto layout constraints here
            rightButton.frame = CGRect(x: 0, y: frame.width - buttonWidth, width: buttonWidth, height: 50)
            rightButton.setTitle("My button", forState: .Normal)
            // other configuration
    
            super.init(frame: frame)
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        } 
    

    }

    1. In your view controller (or any other place where you initialise a table view, set your custom view as a tableHeaderView:

    tableView.tableHeaderView = CustomTableHeaderView(frame: frame:CGRect(x: 0, y: 0, width: view.frame.width, height: 10))