UIActionsheet背景清晰的颜色

时间:2014-03-26 12:31:51

标签: ios

enter image description here这里有一个包含自定义元素的动作表。现在,我需要动作表清晰颜色的背景,或者它应该像镜子一样工作。任何的想法 ?请帮助。但目前它正在恢复浅灰色。我该怎么办?

-(void)chooseCountry
{

UIActionSheet *actionSheet =[[UIActionSheet alloc]initWithTitle:@"Select Country" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];

countryActionSheet=actionSheet;
actionSheet.backgroundColor=[UIColor clearColor];
actionSheet.actionSheetStyle= UIActionSheetStyleDefault;
countryPicker.dataSource=self;
countryPicker.delegate=self;

UIPickerView *pickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(0, 40, 320, 300)];
pickerView.delegate=self;
pickerView.dataSource=self;
countryPicker=pickerView;

UIButton *cancelBtn=[[UIButton alloc]initWithFrame:CGRectMake(200,20, 80, 30)];
[cancelBtn setTitle:@"Cancel" forState:UIControlStateNormal];
[cancelBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[cancelBtn addTarget:self action:@selector(cancelBtnPressed) forControlEvents:UIControlEventTouchUpInside];
[cancelBtn setBackgroundImage:[UIImage imageNamed:@"Untitled 4.png"] forState:UIControlStateNormal];

UIButton *okBtn =[[UIButton alloc]initWithFrame:CGRectMake(40, 20, 80, 30)];
[okBtn setTitle:@"Done" forState:UIControlStateNormal];
[okBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[okBtn addTarget:self action:@selector(okBtnPressed) forControlEvents:UIControlEventTouchUpInside];
[okBtn setBackgroundImage:[UIImage imageNamed:@"Untitled 4.png"] forState:UIControlStateNormal];



countryActionSheet.backgroundColor=[UIColor clearColor];
//[countryActionSheet addSubview:imageView];
[countryActionSheet addSubview:cancelBtn];
[countryActionSheet addSubview:okBtn];

[countryActionSheet addSubview:countryPicker];
[countryActionSheet showInView:self.view];
[countryActionSheet setBounds:CGRectMake(0, 0, 320, 400)];

}

上面显示的是动作表的图像。

1 个答案:

答案 0 :(得分:1)

我通常实现以下委托方法:

-add QuartzCore.framework。
-set delegate for your actionsheet
-set style for actionsheet:UIActionSheetStyleBlackTranslucent
-override方法willPresentActionSheet

#import "QuartzCore/QuartzCore.h"
...

yourActionSheet.delegate = self;
yourActionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
...


- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
//Just to make a sample. In this case I use a stretched png as a background:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {

CGSize mySize = myActionSheet.bounds.size;
CGRect myRect = CGRectMake(0, 0, mySize.width, mySize.height);
UIImageView *redView = [[[UIImageView alloc] initWithFrame:myRect] autorelease];
[redView setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
[myActionSheet insertSubview:redView atIndex:0];
}