2016-07-16 2 views
0

ios에 맞춤 UIButton을 만들었습니다. 동일한 속성이지만 다른 제목으로 동일한 사용자 지정 단추를 10 번 사용하고 싶습니다. 각 버튼에 대해 동일한 코드를 반복하지 않고 가장 효율적이고 똑똑한 방법은 무엇입니까? 그것은 구조체 또는 클래스 또는 뭔가 다른해야합니까? 어떻게 구현할 수 있습니까?iOS에서 가장 좋은 방법으로 맞춤 검색 버튼을 만들고 여러 번 사용하는 방법은 무엇입니까?

@IBOutlet weak var button_1: UIButton! 

button_1.frame = CGRectMake(0.0, 0.0, button_1.frame.width, button_1.frame.height) 
button_1.clipsToBounds = true 
button_1.layer.cornerRadius = button_1.frame.width/2.0 
button_1.layer.borderColor = UIColor.whiteColor().CGColor 
button_1.layer.borderWidth=2.0 
+0

두 답변이 모두 작동했습니다. 고맙습니다! – arda30

답변

4

당신은 UIButton

@IBDesignable 
class MyOwnButton: UIButton { 
    var borderWidth = 2.0 
    var boderColor = UIColor.whiteColor().CGColor 
    @IBInspectable 
    var titleText: String? { 
     didSet { 
      self.setTitle(titleText, forState: .Normal) 
      self.setTitleColor(UIColor.blackColor(), forState: .Normal) 
     } 
    } 

    override init(frame: CGRect){ 
     super.init(frame: frame) 
    } 

    required init?(aDecoder: NSCoder) { 
     super.init(aDecoder: aDecoder) 
    } 

    override func layoutSubviews() { 
     setup() 
    } 

    func setup() { 
     self.clipsToBounds = true 
     self.layer.cornerRadius = self.frame.size.width/2.0 
     self.layer.borderColor = borderColor 
     self.layer.borderWidth = borderWidth 
    } 

그냥 myButton.titleText = "myText" 쓰기 버튼에 텍스트를 설정하려면에서 확장 자신의 클래스를 만들 수 있습니다.

인터페이스 작성기에서 UIButton을 드래그 앤 드롭 한 다음 해당 버튼의 클래스를 자신의 MyOwnButton으로 변경하거나 코드별로 하나를 만들 수 있습니다.

+0

답변 해 주셔서 감사합니다. 이 코드는 버튼 제목을 표시하지 않기를 원하는 방식으로 작동합니다. 스토리 보드에서 각 버튼의 제목을 지정했지만 표시되지 않습니다. 나는 위의 코드에서 self.setTitle ("myTitle", .Normal) 등을 추가하는 것에 지쳤지만 여전히 작동하지 않습니다. – arda30

+0

수정 된 답변을 확인하십시오. 'titleText'속성을 사용하여 버튼 제목을 설정할 수 있습니다. – Brigadier

3

당신은 이제이 방법

let button = UIButton.attributedButton(frame: CGRectMake(20, 20, 10, 40) 
button.setTitle("Title", forState: .Normal) 
self.view.addSubview(button) 
처럼이 메소드를 호출이

extension UIButton { 
    class func attributedButton(frame: CGRect) -> UIButton { 
     let button = UIButton(frame: frame) 
     button.clipsToBounds = true 
     button.layer.cornerRadius = button_1.frame.width/2.0 
     button.layer.borderColor = UIColor.whiteColor().CGColor 
     button.layer.borderWidth = 2.0 
     return button 
    } 
} 

처럼 UIButtonextension를 만들 필요가 다음과 같이 속성 내 사용자 정의 버튼 변경 한 것을이다

이제 고정 속성을 사용하여 버튼을 만들 때마다이 메서드를 사용할 수 있습니다.

관련 문제