自定义UIActionSheet时,屏幕上出现图形点

时间:2014-03-06 20:07:39

标签: ios objective-c customization uiactionsheet

当我自定义UIActionSheet时,屏幕上出现了一个图形白点。

当我将*背景设置为除透明之外的任何其他颜色时,图形白点消失了

屏幕截图:

enter image description here

这是我的代码:

- (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)];
}

任何人都有解决方案吗? 非常感谢。

1 个答案:

答案 0 :(得分:0)

UIActionSheet 并非设计为子类,也不应将视图添加到其层次结构中。如果您需要提供的自定义工作表比UIActionSheet API提供的工作表更多,则可以创建自己的工作表并使用presentViewController:animated:completion:以模态方式显示。

基于:UIActionSheet Class Reference