这里有一个包含自定义元素的动作表。现在,我需要动作表清晰颜色的背景,或者它应该像镜子一样工作。任何的想法 ?请帮助。但目前它正在恢复浅灰色。我该怎么办?
-(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)];
}
上面显示的是动作表的图像。
答案 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];
}