siwft3 에서 동적버튼을 만드는 예제



    let button : UIButton = UIButton(frame: CGRect(x: 300, y: buttonY, width: 50, height: 30))

            button.setTitle("삭제", for: UIControlState.normal)

            button.showsTouchWhenHighlighted = true

            button.setTitleColor(UIColor.red, for: UIControlState.normal)

            button.tag = buttonTag

            button.addTarget(self, action: #selector(deleteButtonAction), for: .touchUpInside)

            self.mainScrollVeiw.addSubview(button)

            buttonTag += 1 // 태그값은 기본을1로주고 버튼생성시마다 1씩 증가시켰다.

            buttonY += 50 // 버튼 생성시마다 위치를 다르게 하기 위해 y값을 증가시킨다.


위크 코드를 보면 addTarget을 사용해서 액션 메소드를 만들어주었다.

UITextField 와 다르게 UIButton 과 UISwitch는 delegate 프로토콜이 없어 액션을 주기위해 위와 같이 addTarget을 사용해야한다.




액션 메소드 코드


func deleteButtonAction(sender: UIButton!) {

        print("deleted \(sender.tag)")

}



위와 비슷하게 label, textfield 등도 동적으로 생성이 가능하다.

+ Recent posts