가로 세로 크기가 동일한 정사각형 버튼에서 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 } } }
사용하고자 하는 버튼의 circleButton
을 true
로 지정하거나
button.circleButton = true
또는 스토리보드에서 버튼 클릭 후 Identity Inspector
의 User Defined Runtime Atrribute
에서 지정합니다.
주의: 버튼의 길이가 제약(constraint)로 지정된 경우는 bounds
의 width
가 0
일 수 있으므로 제약 너비의 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
0개의 댓글