적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/실전 Swift

[실전] Swift Add toggle button using UIButton() 버튼 만들기

hongssup_ 2021. 1. 12. 10:15
반응형

UIButton() 이용하여 토글 버튼 만들기 

 

나는 UIButton() 속성을 가지고 있는 MaterialComponents의 MDCFloatingButton()을 이용해서 버튼을 만들어보았다. 

 

버튼 object 생성하기

1. MaterialComponents.MaterialButtons import 해주기 (그냥 UIButton() 속성 사용 시 생략 가능)

2. MDCFloatingButton() 속성을 가진 버튼 object 만들어주기

화면에 버튼 띄우기

3. setupViews() 함수에서 

  a) 버튼을 subview에 넣어주고

  b) .translatesAutoresizingMaskIntoConstraints = false, .sizeToFit() 을 통해 버튼의 크기 및 위치를 직접 조정할 수 있도록 해준다. 

  c) 기타 버튼 속성 추가 (색, 그림자, 이미지 삽입 등)

4. addConstraints() 함수에서 버튼의 크기 및 위치 잡아주기

5. 생성한 setupViews()와 addConstraints() 메서드를 init() 혹은 viewDidLoad()에 넣어주기 

버튼 탭 이벤트 넣어주기

6. @objc로 버튼 탭 함수를 만들어, 탭 했을 경우 일어날 이벤트를 작성해준다.

7. setuiViews()에서 .addTarget으로 버튼에 #selector(이벤트 함수)를 추가해준다. 버튼 탭 인식 설정은 대부분 .touchUpInside를 많이 쓴다고 한다.  

import MaterialComponents.MaterialButtons  //1

class PlayerViewController: UIViewController {

    let toggleButton = MDCFloatingButton()  //2

    init() {        
        super.init(nibName: nil, bundle: nil)
        //5
        setupViews()
        addConstraints()        
    }
    //3
    func setupViews() {  
        view.addSubview(toggleButton)
        toggleButton.translatesAutoresizingMaskIntoConstraints = false
        toggleButton.sizeToFit()
        // toggleButton 속성 추가
        toggleButton.addTarget(self, action: #selector(didTapToggleButton), for: .touchUpInside)  //7
    }
    //4
    func addConstraints() {
        NSLayoutConstraint.activate([
            // toggleButton constraints 설정
        ])
    }
    //6
    @objc func didTapToggleButton() {
        // 버튼 탭 시 일어날 이벤트 작성            
    }
}
728x90
반응형