Skip to content

Instantly share code, notes, and snippets.

@denkeni
denkeni / Double_to_String.swift
Last active December 31, 2017 08:59
Double to String Precision Issue (Swift & Obj-C)
let value : Double = 1234567890.1234567
// 1. String format
"\(value)" == "1234567890.1234567" // false
"\(value)" // "1234567890.12346"
value.description
String(format: "%f", value) == "1234567890.1234567" // false
String(format: "%f", value) // "1234567890.123457"
String(format: "%.7f", value) == "1234567890.1234567" // true!
@denkeni
denkeni / Auto-Layout-Programmatically-3-3.swift
Last active May 6, 2017 15:07
Auto Layout Programmatically 3-3
let subview = UIStackView()
subview.axis = .horizontal
subview.alignment = .center
subview.distribution = .equalSpacing
subview.addArrangedSubview(arrangedSubview1)
subview.addArrangedSubview(arrangedSubview2)
subview.addArrangedSubview(arrangedSubview3)
@denkeni
denkeni / Auto-Layout-Programmatically-3-2.swift
Created May 6, 2017 14:58
Auto Layout Programmatically 3-2
let spacer1 = UILayoutGuide()
let spacer2 = UILayoutGuide()
view.addLayoutGuide(spacer1)
view.addLayoutGuide(spacer2)
@denkeni
denkeni / Auto-Layout-Programmatically-3-1.swift
Last active May 6, 2017 14:52
Auto Layout Programmatically 3-1
let spacer1 = UIView()
let spacer2 = UIView()
spacer1.translatesAutoresizingMaskIntoConstraints = false
spacer2.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(spacer1)
view.addSubview(spacer2)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(p)-[subview1(100)]-[spacer1]-[subview2(120)]-[spacer2(==spacer1)]-[subview3(130)]-(p)-|",
options: [], metrics: metrics, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(p)-[subview1]-(p)-|",
@denkeni
denkeni / Auto-Layout-Programmatically-2-5.swift
Created April 4, 2017 04:06
Auto Layout Programmatically 2-5
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(15)-[subview1(100)]-(10)-[subview2(120)]-(10)-[subview3]-(15)-|",
options: .alignAllTop, metrics: nil, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:[subview1(300)]",
options: [], metrics: nil, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:[subview2(200)]",
options: [], metrics: nil, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:[subview3(150)]",
options: [], metrics: nil, views: viewsDict)
@denkeni
denkeni / Auto-Layout-Programmatically-2-4.swift
Last active April 4, 2017 04:04
Auto Layout Programmatically 2-4
let metrics = ["p": 15] // padding
let viewsDict = ["subview1": subview1, "subview2": subview2, "subview3": subview3]
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(p)-[subview1(100)]-(10)-[subview2(120)]-(10)-[subview3]-(p)-|",
options: [], metrics: metrics, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(p)-[subview1]-(p)-|",
options: [], metrics: metrics, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(p)-[subview2]-(p)-|",
options: [], metrics: metrics, views: viewsDict)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(p)-[subview3]-(p)-|",
options: [], metrics: metrics, views: viewsDict)
@denkeni
denkeni / Auto-Layout-Programmatically-2-3.swift
Created April 4, 2017 04:02
Auto Layout Programmatically 2-3
let viewsDictA = ["subviewA": subviewA]
constraints.append(subviewA.centerXAnchor.constraint(equalTo: view.centerXAnchor))
constraints.append(subviewA.centerYAnchor.constraint(equalTo: view.centerYAnchor))
// width
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:[subviewA(200)]",
options: [], metrics: nil, views: viewsDictA)
// height
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:[subviewA(100)]",
options: [], metrics: nil, views: viewsDictA)
@denkeni
denkeni / Auto-Layout-Programmatically-2-2.swift
Last active April 4, 2017 04:00
Auto Layout Programmatically 2-2
let metrics = ["v": 150, "h": 100]
let viewsDictB = ["subview": subviewB]
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(v)-[subview]-(v)-|",
options: [], metrics: metrics, views: viewsDictB)
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(h)-[subview]-(h)-|",
options: [], metrics: metrics, views: viewsDictB)
@denkeni
denkeni / Auto-Layout-Programmatically-2-1.swift
Created April 4, 2017 03:53
Auto Layout Programmatically 2-1
let viewsDictB = ["subviewB": subviewB]
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|-(150)-[subviewB]-(150)-|",
options: [], metrics: nil, views: viewsDictB)
// V: Vertical
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(100)-[subviewB]-(100)-|",
options: [], metrics: nil, views: viewsDictB)
// H: Horizontal
@denkeni
denkeni / Auto-Layout-Programmatically-1-3.swift
Last active March 27, 2017 14:50
Auto Layout Programmatically 1-3
subviewC.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(subviewC)
constraints.append(subviewC.centerXAnchor.constraint(equalTo: view.centerXAnchor))
constraints.append(subviewC.centerYAnchor.constraint(equalTo: view.centerYAnchor))
constraints.append(subviewC.widthAnchor.constraint(equalToConstant: 200))
constraints.append(subviewC.heightAnchor.constraint(equalToConstant: 100))