Skip to content

Instantly share code, notes, and snippets.

@drewpts
Created October 29, 2015 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drewpts/b4c80dbe1040795fb530 to your computer and use it in GitHub Desktop.
Save drewpts/b4c80dbe1040795fb530 to your computer and use it in GitHub Desktop.
Constraints configuration with VFL. Scroll view
import UIKit
class AboutViewController: UIViewController {
@IBOutlet weak var menuButton:UIBarButtonItem!
let regularMarginSize = CGFloat(8)
let defFont = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
self.navigationItem.title = "_____"
let navBarHeight = self.navigationController?.navigationBar.frame.height
let companyDescrText = "_____"
let managementText = " Management"
let partnershipsText = " Partnerships"
let vScroll = UIScrollView()
let vView = UIView()
let lblDescr = UILabel()
let btManagement = UIButton(type: .DetailDisclosure)
let btPartnerships = UIButton(type: .DetailDisclosure)
vScroll.contentOffset = CGPointZero
vScroll.contentInset = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5)
lblDescr.text = companyDescrText
lblDescr.lineBreakMode = .ByWordWrapping
lblDescr.numberOfLines = 0
lblDescr.sizeToFit()
lblDescr.font = defFont
lblDescr.preferredMaxLayoutWidth = self.view.frame.width - regularMarginSize
btManagement.setTitle(managementText, forState: .Normal)
btManagement.titleLabel?.font = defFont
btManagement.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside)
btPartnerships.setTitle(partnershipsText, forState: .Normal)
btPartnerships.titleLabel?.font = defFont
btPartnerships.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside)
let views =
[
"vScroll": vScroll,
"vView": vView,
"lblDescr": lblDescr,
"btManagement": btManagement,
"btPartnerships": btPartnerships
]
vView.addSubview(lblDescr)
vView.addSubview(btManagement)
vView.addSubview(btPartnerships)
vScroll.addSubview(vView)
self.view.addSubview(vScroll)
vScroll.translatesAutoresizingMaskIntoConstraints = false
vView.translatesAutoresizingMaskIntoConstraints = false
lblDescr.translatesAutoresizingMaskIntoConstraints = false
btManagement.translatesAutoresizingMaskIntoConstraints = false
btPartnerships.translatesAutoresizingMaskIntoConstraints = false
let m = regularMarginSize //for readability
let n = navBarHeight
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[vScroll]|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-\(n!)-[vScroll]|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vScroll.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[vView]|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vScroll.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[vView]|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-\(m)-[lblDescr]-\(m)-|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-\(m)-[lblDescr]", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-\(m)-[btManagement]", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[lblDescr]-\(m)-[btManagement]", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|-\(m)-[btPartnerships]", options: NSLayoutFormatOptions(), metrics: nil, views: views))
vView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[btManagement]-\(m)-[btPartnerships]-\(m)-|", options: NSLayoutFormatOptions(), metrics: nil, views: views))
}
func pressed(sender: UIButton!) {
print("dsdsdsdsdsdsd")
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment