가로 세로 크기가 동일한 정사각형 버튼에서 cornerRadius 값을 버튼 너비(width)의 50%을 주면 원형 버튼이 됩니다.

 

@IBOutlet으로 연결된 버튼 또는 수동으로 만든 버튼을 원형으로 만들기
@IBOutlet weak var button: UIButton!

// viewDidLoad(_:) 등 함수 안에 작성
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.clipsToBounds = true

 

extension으로 만들어서 재사용하기

프로젝트에 다음 코드를 추가합니다.

import UIKit

extension UIButton {
    var circleButton: Bool {
        set {
            if newValue {
                self.layer.cornerRadius = 0.5 * self.bounds.size.width
            } else {
                self.layer.cornerRadius = 0
            }
        } get {
            return false
        }
    }
}

 

사용하고자 하는 버튼의 circleButtontrue로 지정하거나

button.circleButton = true

또는 스토리보드에서 버튼 클릭 후 Identity InspectorUser Defined Runtime Atrribute에서 지정합니다.

 

주의: 버튼의 길이가 제약(constraint)로 지정된 경우는 boundswidth0일 수 있으므로 제약 너비의 0.5배 값을 수동으로 지정합니다.
let button = UIButton()
button.translatesAutoresizingMaskIntoConstraints = false

// ... //

button.bottomAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
button.widthAnchor.constraint(equalToConstant: 100).isActive = true
button.heightAnchor.constraint(equalToConstant: 100).isActive = true

// ... //

print(button.bounds) // (0.0, 0.0, 0.0, 0.0)
button.layer.cornerRadius = 50 // = 100 * 0.5
button.clipsToBounds = true


문의 | 코멘트 또는 yoonbumtae@gmail.com  donaricano-btn

카테고리: Swift

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다