当您尝试删除iPhone的Notes应用程序中的注释时,会弹出一个UIActionSheet.片材是半透明的(但不是黑色半透明).这是如何实现的?是否有可能使UIActionSheet的背景成为某种颜色?
mar*_*cio 24
我通常实现以下委托方法:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
Run Code Online (Sandbox Code Playgroud)
只是为了做一个样本.在这种情况下,我使用拉伸的png作为背景:
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet {
UIImage *theImage = [UIImage imageNamed:@"detail_menu_bg.png"];
theImage = [theImage stretchableImageWithLeftCapWidth:32 topCapHeight:32];
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)theImage.CGImage];
}
Run Code Online (Sandbox Code Playgroud)
这就是结果: alt text http://grab.by/4yF1
raa*_*aaz 14
您可以使用以下代码:
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackOpaque;
Run Code Online (Sandbox Code Playgroud)
要么
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
Run Code Online (Sandbox Code Playgroud)
actionSheetObj.actionSheetStyle=UIActionSheetStyleBlackTranslucent;
Run Code Online (Sandbox Code Playgroud)
这不是太困难.您可以使用以下代码:
CGSize mySize = myActionSheet.bounds.size;
CGRect myRect = CGRectMake(0, 0, mySize.width, mySize.height);
UIImageView *redView = [[[UIImageView alloc] initWithFrame:myRect] autorelease];
[redView setBackgroundColor:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
[myActionSheet insertSubview:redView atIndex:0];
Run Code Online (Sandbox Code Playgroud)
只需确保在执行此操作之前提供UIActionSheet,否则将无法设置大小.这有点难看,但你可以这样做:
[myActionSheet showInView:self.view];
if (!redAdded) {
redAdded = YES;
//THE ABOVE CODE GOES HERE
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19182 次 |
最近记录: |