2011-07-19 79 views
4

我有一個使用圖像進行顯示的UIButton。UIButton的剪輯圖像

問題是我的圖像是109x78,但我希望按鈕的大小爲109x20,固定在左上方,剪裁大於20像素的所有圖像。

這是我現在有:

UIButton *startTrainingBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[startTrainingBtn setContentMode:UIViewContentModeTopLeft]; 
[startTrainingBtn setClipsToBounds:YES]; 
[startTrainingBtn setImage:[UIImage imageNamed:@"startTrainingClosed"] forState:UIControlStateNormal]; 
[startTrainingBtn setFrame:CGRectMake(900, 653, 109, 20)]; 
[self.view addSubview:startTrainingBtn]; 

我本來以爲使用ContentMode移動到左上角和ClipsToBounds爲YES時,會工作,而是它只是縮小以適應圖像。

回答

0

這是一年前提出的,我認爲你已經做了我要告訴你的事情,但仍然讓我留下這個記錄: 然後使用適當大小的圖像。您的圖像比您需要的高度高出一倍。

據我所知,行爲似乎很奇怪,但它是處理按鈕圖像的方式。 但是,您可以使用圖像將背景顏色設置爲圖案,並且會產生您所追求的效果。

UIButton *startTrainingBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
startTrainingBtn.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"startTrainingClosed"]]; 
[startTrainingBtn setFrame:CGRectMake(900, 653, 109, 20)]; 
[self.view addSubview:startTrainingBtn]; 

這種解決方案的問題是,不能設置一個不同的圖像以不同的狀態,也沒有對按鈕所選擇的效果。