UIKit
코드베이스로 UIButton 구현하기
by 리버🐦🔥
2023. 10. 5.
|
<UIButton>
- 버튼을 생성하고 사용자 상호 작용을 처리하는 데 사용
- 터치 이벤트 또는 제스처 인식을 통해 동작을 수행 (추가적인 이벤트 또는 제스처 함수를 구현해야 함)
[Method & Property]
- backgroundColor: 배경 색을 지정한다.
- setTitle(): 버튼에 넣을 텍스트를 지정한다.
- setTitleColor(): 버튼의 텍스트 색상을 지정한다.
- addTarget(): 버튼의 이벤트에 대한 액션을 추가한다.
등… 프로퍼티 및 메서드 추가로 공부해보기! |
//
// UIButtonTest.swift
// UIKit-Study
//
// Created by Kyungsoo Lee on 2023/09/30.
//
import UIKit
class UIButtonTest: UIViewController {
// MARK: - UIButton
private lazy var uiButton: UIButton = {
let button = UIButton()
button.setTitle("UIButton", for: .normal)
button.setTitleColor(.black, for: .normal)
button.backgroundColor = .systemGray2
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
// MARK: - UIBUtton이 눌렸을 때 호출되는 액션 함수
@objc func buttonTapped() {
print("버튼이 눌렸습니다.")
}
// MARK: - viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.view.backgroundColor = .systemGray
// 뷰 추가(아직 layout 설정 안된 상태)
self.view.addSubview(uiButton)
setLayout()
}
// MARK: - UIButton 제약조건
private func setUIButtonLayout() {
let uiButtonConstraint = [
// 다른 컴포넌트의 상대적인 위치로 제약조건을 설정할 수도 있다.
uiButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
uiButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)
]
NSLayoutConstraint.activate(uiButtonConstraint)
}
// MARK: - 전체 제약조건 설정
// 컴포넌트들의 레이아웃을 설정한다
private func setLayout() {
// 프레임 기반의 레이아웃을 비활성화 하여 오토 레이아웃을 기반으로 설정할 수 있도록 한다.
// UIButton 제약조건 설정
setUIButtonLayout()
}
}
import SwiftUI
@available(iOS 13.0.0, *)
struct UIButtonTestPreview: PreviewProvider {
static var previews: some View {
UIButtonTest().toPreview()
}
}