我試過tintColor = [UIColor redColor]
,它完成了這項工作,但它只顯示按下按鈕時的預期顏色。如何設置UIButtonTypeRoundedRect Button的背景顏色?
在Coloration of UIButtons of type UIButtonTypeRoundedRect他們回答同樣的問題,但你需要一個圖像來實現它,有沒有辦法做到沒有圖像?
記住... 沒有圖像!
我試過tintColor = [UIColor redColor]
,它完成了這項工作,但它只顯示按下按鈕時的預期顏色。如何設置UIButtonTypeRoundedRect Button的背景顏色?
在Coloration of UIButtons of type UIButtonTypeRoundedRect他們回答同樣的問題,但你需要一個圖像來實現它,有沒有辦法做到沒有圖像?
記住... 沒有圖像!
您可以創建一個方法來生成從UIColor
的UIImage
然後將返回圖像作爲按鈕的背景,例如:
- (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
UIImage *image = [self imageWithColor:[UIColor colorWithRed:151.0/255.0
green:36.0/255.0
blue:40.0/255.0
alpha:1.0]];
[self.button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[self.button setBackgroundImage:image forState:UIControlStateNormal];
self.button.layer.cornerRadius = 6.0;
self.button.layer.borderWidth = 1.0;
self.button.layer.borderColor = [UIColor darkGrayColor].CGColor;
self.button.clipsToBounds = YES;
使用此我得到
很好地使用圖像是這樣做的一種方式,但我想你已經明確表示在你的問題中你不想使用圖像。這裏是我創建並以編程方式着色的按鈕。
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100, 100, 100,50);
[btn setTitle:@"Hello" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor colorWithRed:128.0/255.0f green:0.0/255.0f blue:0.0/255.0f alpha:0.7]];
btn.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);//width and height should be same value
btn.clipsToBounds = YES;
btn.layer.cornerRadius = 20;//half of the width
btn.layer.borderColor=[UIColor redColor].CGColor;
btn.layer.borderWidth=2.0f;
[self.view addSubview:btn];
你可以改變禾任何你想要的[UIColor ColorWithRed:
甚至使用[UIColor redColor]
或者您想用這個做任何其他事情。
這裏是一個屏幕截圖:
添加背景色的圓形按鈕是不可能的,按鈕的類型更改爲自定義,然後用石英核心來設置一個圓形按鈕。所以將其添加到您的項目中並將其導入到.m中並且它應該可以工作。希望這對你有用。
更改按鈕類似於您顯示更改幀圖像的東西:
btn.frame = CGRectMake(50.0, 100.0, 200.0, 50.0);
和半徑更改爲:
btn.layer.cornerRadius = 7;
應該這樣做。
有什麼辦法讓它看起來像[image](http: //i.stack.imgur.com/uvNqn.png)? – Balz
你可以玩角球半徑的大小。減少它直到你達到預期的效果。任何事情都可以用石英芯。只是玩弄它,並從我寫的代碼中製作出你喜歡的東西。 –
這裏就是我應該做的:
從Internet下載按鈕圖像或創建自己的形象,使它看起來像你希望它看起來像。 Photoshop可能是你最好的選擇。確保你有一個透明背景並保存爲.png。 然後將其添加到您的xcode項目。製作按鈕:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonAction)
forControlEvents:UIControlEventTouchDown];
[btn setTitle:@"Use it!" forState:UIControlStateNormal];
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
btn.titleLabel.font = [UIFont systemFontOfSize:20];
btn.frame = CGRectMake(position and size of your button);
[self.view addSubview:btn];
yourImage。PNG需要用圖像的名稱替換。
buttonAction
是您的按鈕在點擊時執行的操作。如果你只是添加:
- (void) buttonAction
{
}
你的文件中的任何地方,你在這些括號之間添加的任何內容都將被執行。
確保您的按鈕尺寸與您的尺寸CGRect
相同,以確保它看起來不會伸展或看起來不像您想要的那樣。
如果您有任何問題,隨時問他們。
希望這對你有幫助
@ Balz,檢查我編輯的答案。這應該照顧你的問題。如果您不想使用它,只需移除邊框即可,因此它只會是一種顏色。 –
檢查我的答案中的編輯。 –