2017-02-04 5 views
2

Я пытаюсь установить цвет UIButton Border на раскадровку:Swift установить UIButton setBorderColor в раскадровке

Set button color

Но кнопка все еще черный. Когда я пытаюсь использовать layer.borderColor, он вообще не отображает границу.

Как сделать цвет?

Спасибо

// UPDATE

Я изменил способ настройки на основе @dfd к:

import Foundation 
import UIKit 

@IBDesignable 

public class OnboardingButton: UIButton { 
    @IBInspectable public var borderColor:UIColor? { 
     didSet { 
      layer.borderColor = borderColor?.cgColor 
     } 
    } 
    @IBInspectable public var borderWidth:CGFloat = 0 { 
     didSet { 
      layer.borderWidth = borderWidth 
     } 
    } 
    @IBInspectable public var cornerRadius:CGFloat { 
     get { 
      return layer.cornerRadius 
     } 
     set { 
      layer.cornerRadius = newValue 
      layer.masksToBounds = newValue > 0 
     } 
    } 
} 

После настройки в раскадровки пользовательского класса для * OnboardingButton приложение начало строить, но Faield. В журнале нет ошибки. Где я могу найти ошибку и как ее исправить?

+0

Это выглядит, как вы сделали IBDesignable к UIButton. Вы сделали IBInspectable? И, пожалуйста, мы можем легко отладить это, но покажите нам свой код! – dfd

+0

Лучше делать с подклассом, потому что цвет UIButton принимает CGColor. – Hasya

ответ

3

Вот мой UIButton подкласс:

@IBDesignable 
public class Button: UIButton { 
    @IBInspectable public var borderColor:UIColor? { 
     didSet { 
      layer.borderColor = borderColor?.cgColor 
     } 
    } 
    @IBInspectable public var borderWidth:CGFloat = 0 { 
     didSet { 
     layer.borderWidth = borderWidth 
     } 
    } 
    @IBInspectable public var cornerRadius:CGFloat { 
     get { 
      return layer.cornerRadius 
     } 
     set { 
      layer.cornerRadius = newValue 
      layer.masksToBounds = newValue > 0 
     } 
    } 
} 

EDIT:

Я создал простой проект, и добавил выше IBDesignable подкласс. Ниже приведены три снимка экрана результата. Обратите внимание, что в инспекторе Identity я установил Class для Button, а не UIButton, и что он сообщает, что Designables «обновлены». Обратите внимание, что в инспекторе атрибутов они отображаются как свойства на самом верху.

Identity inspector Attributes inspector Storyboard snapshot

+0

Я пытаюсь использовать его, но я все равно получаю Designables: Build failed, больше на вершине. У вас есть идея, что случилось? – David

+0

Он выглядит идентичным, за исключением пустой строки под «IBDesignable» - это (я думаю) не имеет никакого значения. Мои только вопросы не связаны с ошибками сборки. Вместо журнала вы проверили «Навигатор проблем»? Это четвертая кнопка слева в Xcode. – dfd

+0

Есть только предупреждение, но нет ошибок – David

0

Вы можете изменить некоторые свойства построителя интерфейса формы UIButton, но не цвет границы. Другим способом было бы подклассифицировать его, как в ответе, предложенном dfd.

Смежные вопросы