iPadでモーダルフォームシートビューコントローラーを表示すると、フォームシートに表示されない画面の残りの部分が暗くなります(ただし、透明なままです)。黒まで暗くする(つまり不透明になる)方法はありますか?
ありがとう。
iPadでモーダルフォームシートビューコントローラーを表示すると、フォームシートに表示されない画面の残りの部分が暗くなります(ただし、透明なままです)。黒まで暗くする(つまり不透明になる)方法はありますか?
ありがとう。
いいえ、dim は常にアルファ付きです。必要なことを行うには、独自のモーダル トランジション シートを実装する必要があります。
画像でそれを行うことができます:
- (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;