2016-07-24 23 views
0

首先,我將約束條件設置爲故事板中的按鈕。然後,我用代碼編輯它,使它看起來不錯。 當我將漸變功能應用於按鈕時,它會變得比以前更大。你如何解決這個問題?應用漸變時的按鈕伸展

extension UIView { 
    func applyGradient(colours: [UIColor]) -> Void { 
     self.applyGradient(colours, locations: nil) 
    } 

    func applyGradient(colours: [UIColor], locations: [NSNumber]?) -> Void { 
     let gradient: CAGradientLayer = CAGradientLayer() 
     gradient.frame = self.bounds 
     gradient.colors = colours.map { $0.CGColor } 
     gradient.locations = locations 
     self.layer.insertSublayer(gradient, atIndex: 0) 
    } 
} 

我只是將其運用在一個按鈕,.. Here is the pic...

現在之後,它看起來像這樣...勢必什麼也沒做It goes way outside frame PLZPLZPLZ嘗試梯度幫我:)我感謝烏拉圭回合的幫助到目前爲止

回答

0

添加self.layer.masksToBounds = true的功能。這將意味着你添加的子圖層不會繪製在按鈕的原始框架之外

編輯: 如果你想要陰影,那麼你需要將self.layer.masksToBounds設置爲false,因爲它會剪切陰影太。

嘗試gradient.frame = self.layer.bounds而不是?

+0

它說價值的類型CALAyer有沒有成員clipsToBounds ...我該怎麼辦 –

+0

對不起,這是一個錯字,更新了答案 – Luke

+0

其實梯度是在那裏,但我添加的陰影已經消失.MaskstoBounds ...我做了 button.layer.borderWidth = 2.9 button.layer.shadowRadius = 1.0 buttonLayer.shadowOffset = CGSizeMake(0,3)整個陰影消失了,大概是因爲它不適合原始框架...所以我該如何保持那 –