2016-11-09 2 views
2

Я создал подкласс UIButton для добавления слоя градиента к пакету кнопок, и мне интересно, есть ли способ установить высоту кнопок там, потому что они Все будут одинаковой высоты. Это мой код для градиентного слоя, поэтому я интересно, если это возможно и где в коде мне нужно поставить его:Подкласс UIButton для установки высоты кнопки Xcode/Swift

public class GradientButton: UIButton { 

override public func layoutSubviews() { 
    super.layoutSubviews() 
    createGradientBackground() 

} 
func createGradientBackground() { 

    let gradientLayer = CAGradientLayer() 
    gradientLayer.frame = self.layer.bounds 

    let color1 = UIColor(red:0.05, green:0.29, blue:0.49, alpha:1.0).CGColor as CGColorRef 
    let color2 = UIColor(red:0.08, green:0.23, blue:0.39, alpha:1.0).CGColor as CGColorRef 

    gradientLayer.colors = [color1, color2] 

    gradientLayer.locations = [0.0, 1.0] 

    self.layer.insertSublayer(gradientLayer, atIndex: 0) 
    } 
} 

ответ

2

Конечно, просто добавьте:

init() { 
    self.frame.size.height = 50.0 
    //Do other stuff you may want 
} 

ИЛИ:

func createGradientBackground() { 

    let gradientLayer = CAGradientLayer() 
    gradientLayer.frame = self.layer.bounds 

    let color1 = UIColor(red:0.05, green:0.29, blue:0.49, alpha:1.0).CGColor as CGColorRef 
    let color2 = UIColor(red:0.08, green:0.23, blue:0.39, alpha:1.0).CGColor as CGColorRef 

    gradientLayer.colors = [color1, color2] 

    gradientLayer.locations = [0.0, 1.0] 

    self.layer.insertSublayer(gradientLayer, atIndex: 0) 

    //set custom height wanted 
    self.frame.size.height = 50.0 
} 

Вы можете сделать это в пользовательских init() или внутри вашего createGradientBackground(). Однако вам нужно помнить, какие ограничения вы устанавливаете на своих пуговицах в своем раскадровке.

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