Devolver correctamente UIView en viewForHeaderInSection iOS 8 swift

Soy bastante nuevo en el desarrollo rápido del idioma y el desarrollo de iOS, así que por favor, perdóneme por mi falta de conocimiento fundamental. Anteriormente, intenté e implementé con éxito varias secciones personalizadas UITableView seccionadas haciendo un file xib creando TableViewCell y luego cargando en mi ViewController principal y devolviéndolo como se codifica a continuación:

var customView = NSBundle.mainBundle().loadNibNamed("CustomHeader",owner: self, options: nil)[0] as? UIView return customView 

Pero desde que empecé a get "ninguna ruta de índice para la celda de tabla que se está reutilizando" volví a dibujar e intenté hacer cosas programáticamente creando una UIView y devolviéndola, hasta ahora no he tenido éxito pero esto es lo que codificé:

 func tableView(tableView: UITableView!, viewForHeaderInSection section: Int) -> UIView!{ if(section == 0) { var view = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 50)) var label = UILabel(frame: CGRectMake(0,0, tableView.frame.size.width/2, 20)) label.text="My Details" let button = UIButton.buttonWithType(UIButtonType.System) as UIButton button.frame = CGRectMake(0, 0, tableView.frame.size.width/2, 20) button.addTarget(self, action: "visibleRow", forControlEvents:.TouchUpInside) label.setTranslatesAutoresizingMaskIntoConstraints(false) button.setTranslatesAutoresizingMaskIntoConstraints(false) let views = ["label": label,"button":button,"view": view] var horizontallayoutContraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[label(20)]-60-[button(20)]-10-|", options: NSLayoutFormatOptions(0), metrics: nil, views: views) view.addConstraints(horizontallayoutContraints) return view } ... 

Como puedes ver, estoy tratando de crear un layout donde quiero que mi label y button estén colocados horizontalmente, pero de algún modo la lógica no funciona, intenté deshabilitar las restricciones de autoresize en la vista en sí, pero tampoco funcionó. ¡Por favor ayuda!

Nunca agregó su label o button para "ver". Además, sus tamaños no tienen sentido: establece que los anchos de la label y el button sean 1/2 del ancho de la vista de la tabla, pero luego, en sus restricciones, tiene 80 puntos de espacios, por lo que no puede trabajo. En cualquier caso, NO debe configurar ningún fotogtwig cuando utilice el layout automático. Deshágase de ellos y agregue una restricción vertical a la label o al button, y una opción de layout para alinearlos verticalmente. Además, debe agregar su label y el button a su vista (y hacerlo antes de agregar las restricciones). Algo así debería funcionar,

 func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { if(section == 0) { var view = UIView() // The width will be the same as the cell, and the height should be set in tableView:heightForRowAtIndexPath: var label = UILabel() label.text="My Details" let button = UIButton.buttonWithType(UIButtonType.System) as UIButton button.addTarget(self, action: "visibleRow:", forControlEvents:.TouchUpInside) label.setTranslatesAutoresizingMaskIntoConstraints(false) button.setTranslatesAutoresizingMaskIntoConstraints(false) button.setTitle("Test Title", forState: .Normal) let views = ["label": label,"button":button,"view": view] view.addSubview(label) view.addSubview(button) var horizontallayoutContraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[label]-60-[button]-10-|", options: .AlignAllCenterY, metrics: nil, views: views) view.addConstraints(horizontallayoutContraints) var verticalLayoutContraint = NSLayoutConstraint(item: label, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0) view.addConstraint(verticalLayoutContraint) return view } return nil } func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 50 } 
 override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return 20 } override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { let view = UIView() view.backgroundColor = UIColor.clearColor() return view }