2013-01-07 16 views
0

我正在嘗試以編程方式將漸變圖層添加到最初在Interface Builder中創建的UIButton中。我在ViewController的viewDidLoad方法中添加了新的漸變圖層。我在添加漸變中沒有問題。修改IB中創建的UIButton在iPhone 5上的尺寸不正確

CAGradientLayer *gradientLayer = [CAGradientLayer layer]; 
    gradientLayer.frame = self.btn.layer.bounds; 

    gradientLayer.colors = [NSArray arrayWithObjects:(id)[[UIColor topGradient] CGColor],(id)[[UIColor bottomGradient] CGColor], nil]; 
    [self.btn.layer insertSublayer:gradientLayer atIndex:0]; 

問題是:我從在IB中創建的按鈕獲取框架,這是在iPhone 4的屏幕尺寸佈局。所有的調整大小掩碼設置和正常工作,iPhone 5模擬器屏幕上的按鈕是正確的大小。

但是,應用的漸變只適用於按鈕,因爲它應用於原始幀。如何在應用了autoresizemasks之後獲取框架?

感謝

+1

試試這個[gradientLayer SETFRAME:self.btn.bounds]。代替gradientLayer.frame = self.btn.layer.bounds; – CRDave

+0

這給出了相同的界限 – tech74

+0

當你做這個NSLog(@「%d%d」,btn.frame.size.width,btn.frame.size.height)時,你是否得到正確的幀? ? – CRDave

回答

0

不得不在viewWillAppear中添加此