【发布时间】:2014-03-06 20:07:38
【问题描述】:
当我自定义UIActionSheet 时,屏幕上出现了一个图形白点。
当我将 *background 设置为透明以外的任何其他颜色时,图形白点消失...
截图:
这是我的代码:
- (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)];
}
有人有解决办法吗? 非常感谢。
【问题讨论】:
-
解决方案是不要以 Apple 不支持的方式滥用
UIActionSheet。查找一些提供UIActionSheet的可自定义替换的第三方库或类。 -
如果根本不添加背景视图会怎样?背景视图有什么用?
-
@MarcusAdams 没有背景结果完全一样。
-
好吧,你没有从
UIActionSheet中得到任何东西,所以尝试使用具有半透明背景的普通UIView。 -
@MarcusAdams 我会这样做的。谢谢
标签: ios objective-c customization uiactionsheet