2013-12-20 76 views
0

我正在嘗試使用此處找到的技術創建一個具有自定義背景的NSButton:http://youtu.be/7MZJxPOo_xU。除了最後部分,他解釋如何使用self.layer.contentscenter來確保圖像的邊緣不會以錯誤的方式拉伸,除此之外,一切工作都正常。我試圖用相同的方式來實現它,但它對我沒有任何作用,當我評論它時沒有任何變化。我是否實施了錯誤或者誤解了這裏發生的事情?這是我的代碼和問題的圖像。NSButton layer.contentscenter未正確拉伸

如何按鈕看起來時方(如設計):

enter image description here

它的外觀拉伸時:(注意頂部和底部邊緣垂直怎麼壓縮,當他們應該只在水平方向拉伸)

enter image description here

CustomButton.m

@implementation CustomButton 

- (BOOL)wantsUpdateLayer{ 
    return YES; 
} 

- (void)updateLayer{ 
    self.layer.contentsCenter = CGRectMake(0.5, 0.5, 0, 0); 

    if (self.state == NSOnState) { 
     self.layer.contents = [NSImage imageNamed:@"buttonPressedAndSelected.png"]; 
    } 
    else if (self.state == NSOffState){ 
     self.layer.contents = [NSImage imageNamed:@"buttonSelected.png"]; 
    } 
} 

@end 

回答

1

您的圖片對於按鈕來說太大。問題在於它必須開始壓縮頂部和底部,因爲按鈕已經被擠壓得小於實際的藝術品。嘗試製作更小的方形作品(至少與按鈕一樣小)。

我發現我的方法雖然在小牛身上有這個問題,但它不希望我改變圖層的contentsCenter。但是,它應該仍然有效。

順便說一句,感謝觀看教程:)