Skip to content

Instantly share code, notes, and snippets.

@omergulen
Created March 24, 2019 16:07
Show Gist options
  • Select an option

  • Save omergulen/27b17642255ea2ba2574ff09351e32b8 to your computer and use it in GitHub Desktop.

Select an option

Save omergulen/27b17642255ea2ba2574ff09351e32b8 to your computer and use it in GitHub Desktop.
Manager WWDC19
import Foundation
import UIKit
public class Manager: UIViewController {
var containerView = UIView()
public override func loadView() {
initUIView()
self.view = containerView
}
private func initUIView(){
containerView = UIView(frame: CGRect(x:0, y:0, width: 768, height: 924))
containerView.backgroundColor = .black
initTree()
initInputView()
}
private func initInputView(){
let inputView = UIView(frame: CGRect(x:0, y:512, width: 768, height: 512))
inputView.backgroundColor = UIColor.darkGray
initInputObjects(inputView: inputView)
containerView.addSubview(inputView)
}
private func initInputObjects(inputView: UIView){
let statusLabel = UILabel(frame: CGRect(x: 130, y:30, width: 510, height: 50))
let currentNodeLabel = UILabel(frame: CGRect(x: 130, y:100, width: 200, height: 50))
let textInput = UITextField(frame: CGRect(x: 250, y: 100, width: 300, height: 50))
let myButton = UIButton(frame: CGRect(x:560, y:100, width: 50, height: 50))
statusLabel.text = "This is your status message box."
statusLabel.textColor = .white
statusLabel.textAlignment = .center
currentNodeLabel.text = "currentNode = "
currentNodeLabel.textColor = .white
myButton.backgroundColor = .black
myButton.layer.cornerRadius = 10
myButton.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
// buraya da yazabilirsin
// su anda basinca direk hicbi sey olmuyo mu oluyo wait
textInput.placeholder = "code here"
textInput.backgroundColor = .white
textInput.textColor = UIColor.gray
textInput.textAlignment = .center
textInput.layer.borderWidth = 3
textInput.layer.masksToBounds = true
textInput.layer.cornerRadius = 10
textInput.layer.borderColor = UIColor.gray.cgColor
textInput.font = UIFont.systemFont(ofSize: 15.0)
myButton.setTitle(";", for: .normal)
myButton.setTitleColor(.white, for: .normal)
inputView.addSubview(statusLabel)
inputView.addSubview(currentNodeLabel)
inputView.addSubview(textInput)
inputView.addSubview(myButton)
}
@objc func buttonTapped(_ sender: UIButton) {
print("text")
}
private func initTree(){
let treeView = UIView(frame: CGRect(x:0, y:100, width: 2048, height: 2048))
initNodes(treeView: treeView)
let scvw = ScrollingViewController()
scvw.setTreeView(tv: treeView)
containerView.addSubview(scvw.view)
}
private func initNodes(treeView: UIView){
let root = TreeNode<String>(value: "start")
let answerNodeYes = TreeNode<String>(value: "yes")
let answerNodeNo = TreeNode<String>(value: "no")
let answerNodeMiddle = TreeNode<String>(value: "middle")
let answerNodeZero = TreeNode<String>(value: "zeroPercent")
let answerNodeTwenty = TreeNode<String>(value: "twentyPercent")
let answerNodeForty = TreeNode<String>(value: "fortyPercent")
let answerNodeSixty = TreeNode<String>(value: "sixtyPercent")
let answerNodeHundred = TreeNode<String>(value: "hundredPercent")
let answerNodeIceCream = TreeNode<String>(value: "iceCream")
let answerNodeCream = TreeNode<String>(value: "cream")
let answerNodeMilkFroth = TreeNode<String>(value: "milkFroth")
let answerNodeMilk = TreeNode<String>(value: "milk")
let answerNodeCoffee = TreeNode<String>(value: "coffee")
let answerNodeLight = TreeNode<String>(value: "light")
let answerNodeIntense = TreeNode<String>(value: "intense")
let answerNodeFrothy = TreeNode<String>(value: "frothy")
let answerNodeCreamy = TreeNode<String>(value: "creamy")
let answerNodeHot = TreeNode<String>(value: "hot")
let answerNodeCold = TreeNode<String>(value: "cold")
let answerNodeChocolate = TreeNode<String>(value: "chocolate")
let answerNodeCaramel = TreeNode<String>(value: "caramel")
let answerNodeWhiteChocolate = TreeNode<String>(value: "whiteChocolate")
let answerNodeNut = TreeNode<String>(value: "nut")
let answerNodeNoFlavor = TreeNode<String>(value: "noFlavor")
let answerNodeIceChocolate = TreeNode<String>(value: "chocolate")
let answerNodeIceCaramel = TreeNode<String>(value: "caramel")
let answerNodeIceWhiteChocolate = TreeNode<String>(value: "whiteChocolate")
let answerNodeIceNut = TreeNode<String>(value: "nut")
let answerNodeIceNoFlavor = TreeNode<String>(value: "noFlavor")
root.addChild(answerNodeYes)
root.addChild(answerNodeNo)
root.addChild(answerNodeMiddle)
answerNodeNo.addChild(answerNodeZero)
answerNodeNo.addChild(answerNodeTwenty)
answerNodeNo.addChild(answerNodeForty)
answerNodeNo.addChild(answerNodeSixty)
answerNodeNo.addChild(answerNodeHundred)
answerNodeMiddle.addChild(answerNodeIceCream)
answerNodeMiddle.addChild(answerNodeCream)
answerNodeMiddle.addChild(answerNodeMilkFroth)
answerNodeYes.addChild(answerNodeMilk)
answerNodeYes.addChild(answerNodeCoffee)
answerNodeCoffee.addChild(answerNodeLight)
answerNodeCoffee.addChild(answerNodeIntense)
answerNodeMilk.addChild(answerNodeFrothy)
answerNodeMilk.addChild(answerNodeCreamy)
answerNodeCreamy.addChild(answerNodeHot)
answerNodeCreamy.addChild(answerNodeCold)
answerNodeHot.addChild(answerNodeChocolate)
answerNodeHot.addChild(answerNodeWhiteChocolate)
answerNodeHot.addChild(answerNodeNut)
answerNodeHot.addChild(answerNodeNoFlavor)
answerNodeHot.addChild(answerNodeCaramel)
answerNodeHot.addChild(answerNodeIceChocolate)
answerNodeHot.addChild(answerNodeIceWhiteChocolate)
answerNodeHot.addChild(answerNodeIceNut)
answerNodeHot.addChild(answerNodeIceNoFlavor)
answerNodeHot.addChild(answerNodeIceCaramel)
let milkNode = Node(ans: "START THE JOURNEY!", que: "Milk?", n: root)
let instensityNode = Node(ans: "Yes", que: "Which one should be more intense?", n: answerNodeYes)
let ontheTopNode = Node(ans: "Middle", que: "On the top", n: answerNodeMiddle)
let coffeeIntensityNode = Node(ans: "No", que: "Coffee intensity", n: answerNodeNo)
let zeroNode = Node(ans: "0percent", que: "Americano", n: answerNodeZero)
let twentyNode = Node(ans: "20percent", que: "Lungo", n: answerNodeTwenty)
let fortyNode = Node(ans: "40percent", que: "Espresso", n: answerNodeForty)
let sixtyNode = Node(ans: "60percent", que: "Ristretto", n: answerNodeSixty)
let hundredNode = Node(ans: "100percent", que: "Red Eye", n: answerNodeHundred)
let iceCreamNode = Node(ans: "Ice Cream", que: "Affogato", n: answerNodeIceCream)
let creamNode = Node(ans: "Cream", que: "Espress Con Panna", n: answerNodeCream)
let milkFrothNode = Node(ans: "Milk Froth", que: "Macchiato", n: answerNodeMilkFroth)
let moreMilkNode = Node(ans: "Milk", que: "Milk Consistency?", n: answerNodeMilk)
let moreCoffeeNode = Node(ans: "Coffee", que: "Instensity of the coffee?", n: answerNodeCoffee)
let flatWhiteNode = Node(ans: "Light", que: "Flat White", n: answerNodeLight)
let cortadoNode = Node(ans: "Intense", que: "Cortado", n: answerNodeIntense)
let frothyMilkNode = Node(ans: "Frothy", que: "Cappuccino", n: answerNodeFrothy)
let creamyMilkNode = Node(ans: "Creamy", que: "Hot or cold?", n: answerNodeCreamy)
let hotNode = Node(ans: "Hot", que: "Flavor?", n: answerNodeHot)
let coldNode = Node(ans: "Cold", que: "Flavor?", n: answerNodeCold)
let hotChocolateNode = Node(ans: "Chocolate", que: "Mocha", n: answerNodeChocolate)
let hotCaramelNode = Node(ans: "Caramel", que: "Caramel Latte", n: answerNodeCaramel)
let hotWhiteChocolateNode = Node(ans: "White Chocolate", que: "White Chocolate Mocha", n: answerNodeWhiteChocolate)
let hotNutNode = Node(ans: "Nut", que: "Toffee Nut Latte", n: answerNodeNut)
let hotNoFlavorNode = Node(ans: "No flavor", que: "Latte", n: answerNodeNoFlavor)
let icedChocolateNode = Node(ans: "Chocolate", que: "Iced Mocha", n: answerNodeIceChocolate)
let icedCaramelNode = Node(ans: "Caramel", que: "Iced Caramel Latte", n: answerNodeIceCaramel)
let icedWhiteChocolateNode = Node(ans: "White Chocolate", que: "Iced White Chocolate Mocha", n: answerNodeIceWhiteChocolate)
let icedNutNode = Node(ans: "Nut", que: "Iced Toffee Nut Latte", n: answerNodeIceNut)
let icedNoFlavorNode = Node(ans: "No flavor", que: "Iced Latte", n: answerNodeIceNoFlavor)
milkNode.setOffset(x: 950, y: 10)
instensityNode.setOffset(x: 810, y: 140)
ontheTopNode.setOffset(x: 950, y: 140)
coffeeIntensityNode.setOffset(x: 1085, y: 140)
zeroNode.setOffset(x: 1200, y: 400)
twentyNode.setOffset(x: 1335, y: 400)
fortyNode.setOffset(x: 1470, y: 330)
sixtyNode.setOffset(x: 1470, y: 200)
hundredNode.setOffset(x: 1470, y: 70)
iceCreamNode.setOffset(x: 810, y: 520)
creamNode.setOffset(x: 945, y: 520)
milkFrothNode.setOffset(x: 1080, y: 520)
moreCoffeeNode.setOffset(x: 250, y: 350)
moreMilkNode.setOffset(x: 600, y: 350)
cortadoNode.setOffset(x: 180, y: 500)
flatWhiteNode.setOffset(x: 320, y: 500)
frothyMilkNode.setOffset(x: 530, y: 500)
creamyMilkNode.setOffset(x: 670, y: 500)
hotNode.setOffset(x: 530, y: 850)
coldNode.setOffset(x: 830, y: 850)
hotChocolateNode.setOffset(x: 150, y: 1000)
hotCaramelNode.setOffset(x: 150, y: 1150)
hotWhiteChocolateNode.setOffset(x: 300, y: 1150)
hotNutNode.setOffset(x: 450, y: 1150)
hotNoFlavorNode.setOffset(x: 600, y: 1150)
icedChocolateNode.setOffset(x: 750, y: 1150)
icedCaramelNode.setOffset(x: 880, y: 1150)
icedNutNode.setOffset(x: 1010, y: 1150)
icedWhiteChocolateNode.setOffset(x: 1140, y: 1030)
icedNoFlavorNode.setOffset(x: 1140, y: 900)
milkNode.drawLineFromPoint(start: milkNode.getView().center, toPoint: instensityNode.getView().center, ofColor: UIColor.black, inView: treeView)
milkNode.drawLineFromPoint(start: milkNode.getView().center, toPoint: ontheTopNode.getView().center, ofColor: UIColor.black, inView: treeView)
milkNode.drawLineFromPoint(start: milkNode.getView().center, toPoint: coffeeIntensityNode.getView().center, ofColor: UIColor.black, inView: treeView)
coffeeIntensityNode.drawLineFromPoint(start: coffeeIntensityNode.getView().center, toPoint: zeroNode.getView().center, ofColor: UIColor.black, inView: treeView)
coffeeIntensityNode.drawLineFromPoint(start: coffeeIntensityNode.getView().center, toPoint: twentyNode.getView().center, ofColor: UIColor.black, inView: treeView)
coffeeIntensityNode.drawLineFromPoint(start: coffeeIntensityNode.getView().center, toPoint: fortyNode.getView().center, ofColor: UIColor.black, inView: treeView)
coffeeIntensityNode.drawLineFromPoint(start: coffeeIntensityNode.getView().center, toPoint: sixtyNode.getView().center, ofColor: UIColor.black, inView: treeView)
coffeeIntensityNode.drawLineFromPoint(start: coffeeIntensityNode.getView().center, toPoint: hundredNode.getView().center, ofColor: UIColor.black, inView: treeView)
ontheTopNode.drawLineFromPoint(start: ontheTopNode.getView().center, toPoint: iceCreamNode.getView().center, ofColor: UIColor.black, inView: treeView)
ontheTopNode.drawLineFromPoint(start: ontheTopNode.getView().center, toPoint: creamNode.getView().center, ofColor: UIColor.black, inView: treeView)
ontheTopNode.drawLineFromPoint(start: ontheTopNode.getView().center, toPoint: milkFrothNode.getView().center, ofColor: UIColor.black, inView: treeView)
instensityNode.drawLineFromPoint(start: instensityNode.getView().center, toPoint: moreMilkNode.getView().center, ofColor: UIColor.black, inView: treeView)
instensityNode.drawLineFromPoint(start: instensityNode.getView().center, toPoint: moreCoffeeNode.getView().center, ofColor: UIColor.black, inView: treeView)
moreCoffeeNode.drawLineFromPoint(start: moreCoffeeNode.getView().center, toPoint: flatWhiteNode.getView().center, ofColor: UIColor.black, inView: treeView)
moreCoffeeNode.drawLineFromPoint(start: moreCoffeeNode.getView().center, toPoint: cortadoNode.getView().center, ofColor: UIColor.black, inView: treeView)
moreMilkNode.drawLineFromPoint(start: moreMilkNode.getView().center, toPoint: frothyMilkNode.getView().center, ofColor: UIColor.black, inView: treeView)
moreMilkNode.drawLineFromPoint(start: moreMilkNode.getView().center, toPoint: creamyMilkNode.getView().center, ofColor: UIColor.black, inView: treeView)
creamyMilkNode.drawLineFromPoint(start: creamyMilkNode.getView().center, toPoint: hotNode.getView().center, ofColor: UIColor.black, inView: treeView)
creamyMilkNode.drawLineFromPoint(start: creamyMilkNode.getView().center, toPoint: coldNode.getView().center, ofColor: UIColor.black, inView: treeView)
hotNode.drawLineFromPoint(start: hotNode.getView().center, toPoint: hotChocolateNode.getView().center, ofColor: UIColor.black, inView: treeView)
hotNode.drawLineFromPoint(start: hotNode.getView().center, toPoint: hotCaramelNode.getView().center, ofColor: UIColor.black, inView: treeView)
hotNode.drawLineFromPoint(start: hotNode.getView().center, toPoint: hotNoFlavorNode.getView().center, ofColor: UIColor.black, inView: treeView)
hotNode.drawLineFromPoint(start: hotNode.getView().center, toPoint: hotWhiteChocolateNode.getView().center, ofColor: UIColor.black, inView: treeView)
hotNode.drawLineFromPoint(start: hotNode.getView().center, toPoint: hotNutNode.getView().center, ofColor: UIColor.black, inView: treeView)
coldNode.drawLineFromPoint(start: coldNode.getView().center, toPoint: icedNoFlavorNode.getView().center, ofColor: UIColor.black, inView: treeView)
coldNode.drawLineFromPoint(start: coldNode.getView().center, toPoint: icedWhiteChocolateNode.getView().center, ofColor: UIColor.black, inView: treeView)
coldNode.drawLineFromPoint(start: coldNode.getView().center, toPoint: icedNutNode.getView().center, ofColor: UIColor.black, inView: treeView)
coldNode.drawLineFromPoint(start: coldNode.getView().center, toPoint: icedChocolateNode.getView().center, ofColor: UIColor.black, inView: treeView)
coldNode.drawLineFromPoint(start: coldNode.getView().center, toPoint: icedCaramelNode.getView().center, ofColor: UIColor.black, inView: treeView)
treeView.addSubview(milkNode.getView())
treeView.addSubview(instensityNode.getView())
treeView.addSubview(ontheTopNode.getView())
treeView.addSubview(coffeeIntensityNode.getView())
treeView.addSubview(zeroNode.getView())
treeView.addSubview(twentyNode.getView())
treeView.addSubview(fortyNode.getView())
treeView.addSubview(sixtyNode.getView())
treeView.addSubview(hundredNode.getView())
treeView.addSubview(iceCreamNode.getView())
treeView.addSubview(creamNode.getView())
treeView.addSubview(milkFrothNode.getView())
treeView.addSubview(moreCoffeeNode.getView())
treeView.addSubview(moreMilkNode.getView())
treeView.addSubview(flatWhiteNode.getView())
treeView.addSubview(cortadoNode.getView())
treeView.addSubview(frothyMilkNode.getView())
treeView.addSubview(creamyMilkNode.getView())
treeView.addSubview(hotNode.getView())
treeView.addSubview(coldNode.getView())
treeView.addSubview(hotChocolateNode.getView())
treeView.addSubview(hotCaramelNode.getView())
treeView.addSubview(hotNutNode.getView())
treeView.addSubview(hotWhiteChocolateNode.getView())
treeView.addSubview(hotNoFlavorNode.getView())
treeView.addSubview(icedChocolateNode.getView())
treeView.addSubview(icedCaramelNode.getView())
treeView.addSubview(icedNutNode.getView())
treeView.addSubview(icedWhiteChocolateNode.getView())
treeView.addSubview(icedNoFlavorNode.getView())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment