iOS 실전 (swift)/UI 커스텀(프로그래밍적 접근)
[iOS - UI Custom] 3. UIKit객체별 속성지정
jake-kim
2020. 4. 16. 22:00

* UIKit관련 객체
- TextField, Switch, Stepper, Label
* 변수 준비
|
1
2
3
4
5
6
7
8
9
10
11
|
class ViewController: UIViewController {
var tF: UITextField!
var s: UISwitch!
var stepper: UIStepper!
var l: UILabel!
override func viewDidLoad() {
// 이곳에 각 속성 정의
}
}
|
1) TextField
|
1
2
3
4
5
6
7
8
9
|
tF = UITextField()
tF.frame= CGRect(x: 10, y: 50, width: self.view.frame.width, height: 200)
tF.font = .systemFont(ofSize: 15)
tF.borderStyle = .roundedRect // .line / .bezel / .none
tF.textAlignment = .left
tF.adjustsFontSizeToFitWidth = true // 텍스트 너비에 따라 폰트 사이즈 변화
tF.placeholder = "일기 작성"
tF.autocapitalizationType = .none // .allCharacters / .sentences / .words
self.view.addSubview(tF)
|
2) Switch
|
1
2
3
4
5
|
s = UISwitch()
s.frame = CGRect(x: tF.frame.origin.x, y: tF.frame.origin.y + tF.frame.height + 10, width: 100, height: 100)
s.isOn = true
s.setOn(true, animated: true)
self.view.addSubview(s)
|
3) Stepper
|
1
2
3
4
5
6
7
|
stepper = UIStepper()
stepper.frame = CGRect(x: s.frame.origin.x, y: s.frame.origin.y + s.frame.height + 10, width: 100, height: 100)
stepper.minimumValue = 0
stepper.maximumValue = 100
stepper.stepValue = 1
stepper.value = 0
self.view.addSubview(stepper)
|
4) Label
|
1
2
3
4
5
6
7
|
lbl = UILabel()
lbl.frame = CGRect(x: 100, y: 100, width: 30, height: 50)
lbl.font = .systemFont(ofSize: 15)
lbl.textColor = .red
lbl.text = "레이블"
lbl.sizeToFit() // 컨텐츠의 내용에 맞게 레이블 크기 변경
self.view.addSubview(lbl)
|
5) 중앙정렬 하는 방법 : center속성 사용
- center란, 중앙의 기준점 잡는 것
|
1
2
3
4
5
|
// x좌표를 루트뷰의 중앙으로 이동
lbl.center = CGPoint(x: self.view.frame.width / 2, y: 100)
// 바로 대입 방법
labl.center = self.view.center
|

6) Slider
|
1
2
3
4
5
|
let slider = UISlider()
slider.minimumValue = 0
slider.maximumValue = 100
slider.frame = CGRect(x: 0, y: 0, width: 170, height: 30)
self.view.addSubview(slider)
|
7) Button
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
self.btn = UIButton()
self.btn.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
btn.tag= -1
btn.setTitle("↓", for: .normal) // .normal속성은 평상시의 상태를 의미. 선택되었을 때의 상태지정은 .selected
btn.setTitleColor(.black, for: .normal) // 생성시 처음 값은 white이므로 지정해줘야 함
btn.titleLabel?.font = .boldSystemFont(ofSize: 15)
btn.layer.masksToBounds= true
// btn.layder.cornerRadius = 120 한 경우, 모서리에 있던 text를 가릴 것이냐(true), 안가릴 것이냐(false)
// "btn.layout.masksToBounds = true"는 "btn.clipsToBounds = true"와 동일
btn.layer.cornerRadius= 5
btn.layer.borderWidth= 0.5
btn.layer.borderColor = UIColor.blue.cgColor
self.view.addSubview(btn)
|
