0

iPadでモーダルフォームシートビューコントローラーを表示すると、フォームシートに表示されない画面の残りの部分が暗くなります(ただし、透明なままです)。黒まで暗くする(つまり不透明になる)方法はありますか?

ありがとう。

4

3 に答える 3

0

いいえ、dim は常にアルファ付きです。必要なことを行うには、独自のモーダル トランジション シートを実装する必要があります。

于 2012-06-25T11:42:51.827 に答える
0

画像でそれを行うことができます:

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
    UIImage *backgroundImage = [UIImage imageNamed:@"testimage.png"];    
    backgroundImage = [backgroundImage stretchableImageWithLeftCapWidth:20 topCapHeight:40];
    CGSize theSize = actionSheet.frame.size;
    // draw the background image and replace layer content  
    UIGraphicsBeginImageContext(theSize);    
    [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)];    
    theImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    [[actionSheet layer] setContents:(id)backgroundImage.CGImage];
}

または、次のようにします。

CGSize mySize = myActionSheet.bounds.size;
CGRect myRect = CGRectMake(0, 0, mySize.x, mySize.y);
UIImageView *blackView = [[[UIImageView alloc] initWithFrame:myRect] autorelease];
[redView setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]];
[self.view insertSubview:blackView atIndex:0];

actionSheetStyle を変更することもできます

MyActionSheet.actionSheetStyle=UIActionSheetStyleBlackOpaque;
MyActionSheet.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
于 2012-06-25T11:44:14.040 に答える