SetBackgroundImage
當給定一個固定大小的UIButton時,如果圖的大小跟UIButton不同,一種解法是
UIImage *image = [UIImage imageNamed:@"buttonImage"];
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(30.0f, 25.0f, 29.0f, 9.0f);
UIImage *resizeableImage = [image resizableImageWithCapInsets:edgeInsets];
[backButton setBackgroundImage:resizeableImage forState:UIControlStateNormal];
SetImage
如果背景圖已經用掉了,也就是UIButton現在已經有背景圖,但是前景還想再放一個跟按鈕大小不同的圖,這時可以利用UIButton裡的UIImageView。Stackoverflow上有教一個方法是
[button setContentMode:UIViewContentModeScaleAspectFit];
但是這個只能放大圖不能縮小圖。
另一種方法是透過設定imageEdgeInsets可以縮小Image
[button setImage:[UIImage imageNamed:@"buttonImage"] forState:UIControlStateNormal];
button.imageEdgeInsets = UIEdgeInsetsMake(10,20,10,20);
效果大概像這樣
圖片來自http://stackoverflow.com/questions/1957317/how-do-i-scale-a-uibuttons-imageview, Hitesh Savaliya的答案
沒有留言:
張貼留言