카테고리 없음
Basic반 7회차
가애야
2024. 7. 10. 20:44
전날 숙제가 있었다
수직스택뷰 안에 수평스택뷰 넣기..
역시 혼자서 바로 하진 못했고 ㅋㅋㅋㅋ
수업 도중에 완성을했다
MVC등 나누기 위해 ViewController 말고 다른 뷰에 코드 작성하기
밑에는 참고용
되도록 보지 않고 작성해보기!
import UIKit
class MyLabelView: UILabel {
init(text: String) {
super.init(frame: .zero)
self.text = text
textAlignment = .center
translatesAutoresizingMaskIntoConstraints = false
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
//class MyLabelView: UIButton {
// init(text: String) {
// super.init(frame: .zero)
// self.text = text
// textAlignment = .center
// translatesAutoresizingMaskIntoConstraints = false
// }
//
// required init?(coder: NSCoder) {
// fatalError("init(coder:) has not been implemented")
// }
//}
class CaculatorView: UIView {
let helloLabel = UILabel()
let button1: UILabel = MyLabelView(text: "1")
let button2: UILabel = MyLabelView(text: "2")
let button3: UILabel = MyLabelView(text: "3")//MyNameButton(text: "1")
let button4: UILabel = {
let label = UILabel()
label.text = "4"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let button5: UILabel = {
let label = UILabel()
label.text = "5"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let button6: UILabel = {
let label = UILabel()
label.text = "6"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let button7: UILabel = {
let label = UILabel()
label.text = "7"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let button8: UILabel = {
let label = UILabel()
label.text = "8"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let button9: UILabel = {
let label = UILabel()
label.text = "9"
label.textAlignment = .center
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let myStackView: UIStackView = {
let stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .center
stackView.distribution = .fillEqually
stackView.backgroundColor = .yellow
return stackView
}()
let myStackView2: UIStackView = {
let stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .center
stackView.distribution = .fillEqually
stackView.backgroundColor = .yellow
return stackView
}()
let myStackView3: UIStackView = {
let stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.alignment = .center
stackView.distribution = .fillEqually
stackView.backgroundColor = .yellow
return stackView
}()
let mainStackView: UIStackView = {
let stackView = UIStackView(frame: .zero)
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .horizontal
stackView.alignment = .fill
stackView.distribution = .fillEqually
return stackView
}()
override init(frame: CGRect) {
super.init(frame: frame)
configureView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
configureView()
}
func configureView() {
addSubview(mainStackView)
mainStackView.addArrangedSubview(myStackView)
mainStackView.addArrangedSubview(myStackView2)
mainStackView.addArrangedSubview(myStackView3)
myStackView.addArrangedSubview(button7)
myStackView.addArrangedSubview(button4)
myStackView.addArrangedSubview(button1)
myStackView2.addArrangedSubview(button8)
myStackView2.addArrangedSubview(button5)
myStackView2.addArrangedSubview(button2)
myStackView3.addArrangedSubview(button9)
myStackView3.addArrangedSubview(button6)
myStackView3.addArrangedSubview(button3)
NSLayoutConstraint.activate([
mainStackView.leadingAnchor.constraint(equalTo: leadingAnchor),
mainStackView.trailingAnchor.constraint(equalTo: trailingAnchor),
mainStackView.centerYAnchor.constraint(equalTo: centerYAnchor),
mainStackView.heightAnchor.constraint(equalToConstant: 250)
])
}
}
class ViewController: UIViewController {
let calculatorView = CaculatorView()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemPink
configureView()
}
func configureView() {
view.addSubview(calculatorView)
calculatorView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
calculatorView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
calculatorView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
calculatorView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
calculatorView.heightAnchor.constraint(equalToConstant: 250)
])
}
@objc func buttonTapped() {
calculatorView.helloLabel.text = "Leeo"
// helloLabel.text = "Leeo"
}
}