지금까지 스토리보드에서 라이브러리를 통해 label을 불러왔지만 오늘은 ViewController에서 UI를 만들어보자.
import UIKit // UIKit가 Foundation을 포함함
class SecondViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
label.frame = CGRect(x: 0, y: 0, width: 100, height: 50)
view.addSubview(view: UIView)
를 통해 sub view를 만들 수 있다. view.backgroundColor = UIColor.red
calculatePressed()
함수에서 다음을 추가한다. let secondVC = SecondViewController()
self.present(secondVC, animated: true, completion: nil)
bmiValue
를 초기화한다.var bmiValue = "0.0"
secondVC.bmiValue = String(format:"%.1f", bmi)
ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var heightLabel: UILabel!
@IBOutlet weak var weightLabel: UILabel!
@IBOutlet weak var heightSlider: UISlider!
@IBOutlet weak var weightSlider: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func heightSliderChanged(_ sender: UISlider) {
let height = String(format: "%.2f", sender.value)
heightLabel.text = "\(height)m"
}
@IBAction func weightSliderChanged(_ sender: UISlider) {
let weight = String(Int(sender.value))
weightLabel.text = "\(weight)kg"
}
@IBAction func calculatePressed(_ sender: UIButton) {
let height = heightSlider.value
// heightSlider의 property 중 value 값
let weight = weightSlider.value
// weightSlider의 property 중 value 값
let bmi = weight / pow(height, 2)
// let bmi = weight / (height * height) 와 동일함
let secondVC = SecondViewController()
secondVC.bmiValue = String(format:"%.1f", bmi)
self.present(secondVC, animated: true, completion: nil)
}
}
SecondViewController
import UIKit // UIKit가 Foundation을 포함함
class SecondViewController: UIViewController {
var bmiValue = "0.0" // label에서 사용해주기 위해 전역에 초기화 한 것
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .red
let label = UILabel()
label.text = bmiValue
// 아직 사이즈가 없다
// 사이즈를 만들기 위해 프레임 property
label.frame = CGRect(x: 0, y: 0, width: 100, height: 50)
//CGRect : Cool Graphics Rectangle
view.addSubview(label)
}
}