ViewController.Swift에서 코드 작성
코드로 만들어진 객체는 기본적으로 constraint 설정이나 크기나 위치에 대한 개념이 없으면 실행해도 보이지 않음
크기나 위치에 대한 코드는 frame과 constraints가 있음
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let myButton = UIButton.init(type: .system) // 시스템에서 기본적으로 제공해주는 스타일 타입 적용
myButton.setTitle("My Button", for: .normal) // 이름은 My Button이라는 기본 상태(.normal)의 버튼
// 뷰 컨트롤러가 가진 뷰 위에 myButton을 올려놓음
self.view.addSubview(myButton)
// false는 오토 레이아웃을 설정하겠다는 뜻 / true로 하면 오토 레이아웃 설정 안함 그리고 frame 값을 먹음
myButton.translatesAutoresizingMaskIntoConstraints = false
// 부모 뷰는 self.view
// constraint 설정은 코드에서는 비활성화 되어 있으므로 활성화를 시켜줘야 함
// .isActive = true 활성화 코드
myButton.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
// +는 가운데 기준으로 우측 -는 가운데 기준으로 좌측으로 이동
// 가운데 기준 우측으로 100만큼 이동
myButton.centerXAnchor.constraint(equalTo: self.view.centerXAnchor, constant: 100).isActive = true
// Label 추가
let myLabel = UILabel.init()
myLabel.text = "My Label" // Label에 텍스트 추가
self.view.addSubview(myLabel)
myLabel.translatesAutoresizingMaskIntoConstraints = false
// safeAreaLayoutGuide를 사용하지 않으면 가이드 라인을 침범, 원하는 결과가 아닌 이상한 결과가 나옴
// 위로 30만큼
myLabel.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor, constant: 30).isActive = true
// 왼쪽으로 100만큼
myLabel.leftAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leftAnchor, constant: 100).isActive = true
}
}
'Swift' 카테고리의 다른 글
보안 키보드 만들기 (0) | 2021.02.13 |
---|---|
StackView (0) | 2021.02.06 |
Button Inset (0) | 2021.02.05 |
스크롤 뷰 (0) | 2021.02.05 |
오토 레이아웃 (0) | 2021.02.04 |