2016-08-23 2 views
1

Я делаю пользовательскую клавиатуру и хочу добавить тень к кнопкам. так добавил код (keys.layer ~~) в viewDidLoad()Xcode как комбинировать кнопки пользовательского интерфейса?

, но я не могу установить несколько кнопок на одну IBOutlet
то, что я хочу, все клавиши имеют «ключи (IBOutlet)» в качестве значения (?) можно? если это не так, любая другая вещь в порядке :) help!

это мой код (пожалуйста, игнорируйте следующую кнопку клавиатуры)

@IBAction func keys(sender: AnyObject) { 

} 

@IBOutlet weak var keys: UIButton! 

@IBOutlet var nextKeyboardButton: UIButton! 

override func updateViewConstraints() { 
    super.updateViewConstraints() 

    // Add custom view sizing constraints here 
} 

override func viewDidLoad() { 
    super.viewDidLoad() 

    loadInterface() 
    keys.layer.cornerRadius = 4.0; 
    keys.layer.shadowColor = UIColor.blackColor().CGColor 
    keys.layer.shadowOffset = CGSizeMake(0.0, 2.0) 
    keys.layer.masksToBounds = false 
    keys.layer.shadowRadius = 1.0 
    keys.layer.shadowOpacity = 0.5 
+0

попробовать [это] (http://stackoverflow.com/questions/28702043/can-i-change-the-properties-of-all-the-buttons-in-my-swift-app). . Это может помочь – Gokul

+0

Невозможно назначить IBOutlet более чем одному интерфейсу. Это уникальный идентификатор по какой-либо причине. В вашей ситуации я бы предложил создать подкласс UIButton, подходящий для ваших нужд. – Maurice

+0

@Gokul благодарит его просто волшебным образом! –

ответ

0

Вы можете сделать UIButton расширение, как это и используется со всеми объекта пользовательской клавиатуры Button

extension UIButton { 

    func setShadow() { 
     self.layer.cornerRadius = 4.0; 
     self.layer.shadowColor = UIColor.blackColor().CGColor 
     self.layer.shadowOffset = CGSizeMake(0.0, 2.0) 
     self.layer.masksToBounds = false 
     self.layer.shadowRadius = 1.0 
     self.layer.shadowOpacity = 0.5 
    } 
} 

Теперь вы можете позвоните этому методу с помощью кнопки, например, таким образом

self.nextKeyboardButton.setShadow() 

Edit:

Если вы хотите получить доступ к нескольким Button объекта с тем же объектом вы можете создать Array из UIButton, и хранить все выпускные Button внутри этого массива.

var buttonArray = [UIButton]() 
+0

Вы могли бы объяснить больше? где я должен добавить этот код? –

+0

Вы можете объявить это расширение в текущем файле viewController, но вне определения 'class', а не внутри' class'. –

+0

Работает ли он? –

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