2012-12-29 52 views
0

可能重複:
create UIImageView with portion of image file中的UIButton顯示的圖像的一部分

我已經安裝了一系列的周圍30像素X 30像素的按鈕。我有一個尺寸爲300像素×300像素的圖像。

當我將圖像設置爲圖像或背景圖像時,圖像會自動調整大小以適應按鈕。我真正喜歡的是顯示圖像的30 x 30部分。

我已經嘗試了幾種方法來做到這一點,但他們似乎沒有結果。我嘗試過騎 - (void)layoutSubviews,但是這導致圖像比按鈕本身更大,並導致其他奇怪的行爲。

我也嘗試過修改圖像視圖屬性,但是這也是行不通的。

最後,我已經嘗試使用imageEdgeInsets,但這又有類似的行爲在佈局layoutsubviews。

我想這樣做,因爲我有許多按鈕可以組成整個畫面,但這些將會移動。另一種方法是將圖像分成一個繪製樣式包,但從長遠來看,這會導致額外的工作,並希望以編程方式執行此操作。任何指導如何進行將不勝感激。

回答

2

在發佈問題後,我進一步調查並發現以下內容。

一些這方面都非常相似,位於create UIImageView with portion of image file

UIImage* img = [UIImage imageNamed:currentImage]; 
    CGRect imgFrame = CGRectMake(x, y, 30, 30); 
    CGImageRef imageRef = CGImageCreateWithImageInRect([img CGImage], imgFrame); 
    UIImage* subImage = [UIImage imageWithCGImage: imageRef]; 
    [imageButton setBackgroundImage:subImage forState:UIControlStateNormal]; 

問題一旦做到這一點子圖像可以簡單地添加爲UIButton的如圖像: -

[imageButton setBackgroundImage:subImage forState:UIControlStateNormal];