I have a graphic white spot appearing on the screen when I customize UIActionSheet
.
The graphic white spot disappear when I set *background to any other color than transparent...
Screenshot:
and here is my code :
- (void) customisingActionSheet
{
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@""
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
UIView *background = [[UIView alloc] initWithFrame:CGRectMake(0,0,320, 315)];
background.backgroundColor = [UIColor clearColor];
[actionSheet addSubview:background];
self.customActionSheet = actionSheet;
UIButton *cancelButton = [UIButton buttonWithType: UIButtonTypeCustom];
cancelButton.frame = CGRectMake(15, 111, 290, 45);
[cancelButton addTarget:self action:@selector(cancelButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
cancelButton.adjustsImageWhenHighlighted = YES;
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
cancelButton.backgroundColor = darkGrey;
cancelButton.titleLabel.textAlignment = NSTextAlignmentCenter;
cancelButton.titleLabel.font = [UIFont fontWithName: @"HelveticaNeue-Medium" size: 17];
[self.customActionSheet addSubview: cancelButton];
UIButton *chooseFromLibrary = [UIButton buttonWithType: UIButtonTypeCustom];
chooseFromLibrary.frame = CGRectMake(15, 52, 290, 45);
[chooseFromLibrary addTarget:self action:@selector(emailResultsTapped:) forControlEvents:UIControlEventTouchUpInside];
chooseFromLibrary.adjustsImageWhenHighlighted = YES;
[chooseFromLibrary setTitle:@"Choose from Library" forState:UIControlStateNormal];
[chooseFromLibrary setTitleColor:[UIColor colorWithRed:53/255.0f green:53/255.0f blue:53/255.0f alpha:1.0f] forState:UIControlStateNormal];
chooseFromLibrary.backgroundColor = [UIColor whiteColor];
chooseFromLibrary.titleLabel.textAlignment = NSTextAlignmentCenter;
chooseFromLibrary.titleLabel.font = [UIFont fontWithName: @"Helveticaneue" size: 17];
[self.customActionSheet addSubview: chooseFromLibrary];
UIButton *takePicture = [UIButton buttonWithType: UIButtonTypeCustom];
takePicture.frame = CGRectMake(15, 0, 290, 45);
[takePicture addTarget:self action:@selector(emailResultsTapped:) forControlEvents:UIControlEventTouchUpInside];
takePicture.adjustsImageWhenHighlighted = YES;
[takePicture setTitle:@"Take picture" forState:UIControlStateNormal];
[takePicture setTitleColor:[UIColor colorWithRed:53/255.0f green:53/255.0f blue:53/255.0f alpha:1.0f] forState:UIControlStateNormal];
takePicture.backgroundColor = [UIColor whiteColor];
takePicture.titleLabel.textAlignment = NSTextAlignmentCenter;
takePicture.titleLabel.font = [UIFont fontWithName: @"Helveticaneue" size: 17];
[self.customActionSheet addSubview: takePicture];
[actionSheet showInView:self.view];
[self.customActionSheet setBounds:CGRectMake(0,0,320, 315)];
}
Anyone has a solution for it? Many thanks.
UIActionSheet
is not designed to be subclassed, nor should you add views to its hierarchy. If you need to present a sheet with more customization than provided by the UIActionSheet
API, you can create your own and present it modally with presentViewController:animated:completion:
.
Based on: UIActionSheet Class Reference