2015-01-15 5 views
6

Я хочу, чтобы квартира выглядела белой, граничащей с моим UIButton. Я бы хотел это в Раскадке или программно. Мой код не работает.Bordered iOS 8 Buttons Swift

Код:

UIButton.layer.cornerRadius = 2; 
UIButton.layer.borderWidth = 1; 
UIButton.layer.borderColor = UIColor.whiteColor() 
+1

Вы можете уточнить "не работает"? Это потому, что вы пытаетесь установить свойства в классе UIButton вместо экземпляра этого класса? –

+1

UiButton.type не имеет члена с именем layer is error –

+0

Правильно, тип UIButton не имеет свойств, к которым вы пытаетесь получить доступ. Вам нужен экземпляр класса. –

ответ

16

Вы должны создать ссылки на выход для вашей кнопки от раскадровки к вашему VC имени, например MyButton, чем установить его свойства

myButton.layer.cornerRadius = 2; 
myButton.layer.borderWidth = 1; 
myButton.layer.borderColor = UIColor.whiteColor().CGColor 
1

, как 0x7fffffff сказал. UIButton класс может быть instatiated бушель вызова его конструктора, как этот

let instanceOfUIButton = UIButton() 

, то вы можете установить желаемые атрибуты:

instanceOfUIButton.layer.cornerRadius = 2; 
5

Вы не должны делать это с помощью кода либо. Вы можете создать растягиваемое изображение и установить его на фоновое изображение кнопки в инспекторе атрибутов.

enter image description here

+0

ссылка недоступна – ursa

+0

Спасибо, ссылка была удалена – iOSAaronDavid

0

В Xcode 8.2 (Swift 3) Вы можете использовать "Удостоверение инспектора Tab". Найдите «Определенные пользователем атрибуты времени выполнения», после выбора вашего UIButton. Там вы можете определить эти атрибуты:

  1. Путь к ключу: layer.cornerRadius; 2-Type: Number, 3-Value: 2
  2. Путь к ключу: layer.borderWidth; 2-Type: Number, 3-Value: 1
  3. Путь к ключу: layer.borderColor; 2-Type: Color, 3-Value: «select white or another one»
0

Другим вариантом вместо создания ссылки на каждую кнопку будет создание подкласса типа UIButton. Затем вы можете установить свойства в подклассе. Затем вы можете изменить класс всех кнопок в раскадровке, которые должны иметь одинаковые свойства.

class MyButton: UIButton { 

override func draw(_ rect: CGRect) { 
     super.draw(rect) 
     layer.borderWidth = 1.0 
     layer.borderColor = UIColor.White 
     layer.cornerRadius = 2 
    } 

} 
0

Добавьте эту строку в верхней

myButton.layer.masksToBounds = true