【问题标题】:How can I display mail composer in landscape mode by using MFMailComposeViewController in cocos2d?如何在 cocos2d 中使用 MFMailComposeViewController 以横向模式显示邮件编写器?
【发布时间】:2010-07-06 06:58:16
【问题描述】:

我正在用 cocos2d 编写游戏。我想将 MFMailComposeViewController 添加到场景中。 因此,当我在场景中触摸 CcLabel 时,会打开邮件表。

@interface EmailScene : CCScene <MFMailComposeViewControllerDelegate>
{
    MFMailComposeViewController *picker;
}

-(void)displayComposerSheet;

@end

@implementation EmailScene

- (id) init {

    self = [super init];
    if (self != nil) {
        [self displayComposerSheet];
    }
    return self;
}
-(void)displayComposerSheet
{

    [[CCDirector sharedDirector] pause];
    picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    NSArray *toRecipients = [NSArray arrayWithObject:@"srikanth.rongali786@gmail.com"]; 
[picker setToRecipients:toRecipients];

    [[[CCDirector sharedDirector] openGLView] addSubview:picker.view];
    [[CCDirector sharedDirector] stopAnimation];
}
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
    [[CCDirector sharedDirector] resume];
    CCScene *Scene = [CCScene node];
    CCLayer *Layer = [GameWinScreen node];
    [Scene addChild:Layer];

    [picker.view removeFromSuperview];
    [[CCDirector sharedDirector] startAnimation];
    [picker dismissModalViewControllerAnimated:YES];
    [[CCDirector sharedDirector] replaceScene:Scene];
}

@end  

alt text http://www.freeimagehosting.net/uploads/4a77b9ceb9.png

但是,问题是我的游戏处于横向模式。所以,我需要邮件表以横向模式显示。但是,这里的邮件表以纵向模式显示。并且键盘以横向模式出现。但是,邮件镇静表处于纵向模式。

我们如何将“从我的 iPhone 发送”更改为“从我的 iPad 发送”

谢谢。

alt text http://www.freeimagehosting.net/uploads/3eb39ea1de.png

【问题讨论】:

  • 这看起来可能是 Apple 实施中的错误。您是否确认它在设备本身上的方向错误?
  • 我也有这个问题..我正在使用 cocos2d 99.5......sp...开始赏金...

标签: cocoa-touch cocos2d-iphone ipad mfmailcomposeviewcontroller


【解决方案1】:

您可以尝试手动旋转视图...:

CGAffineTransform landscapeTransform = CGAffineTransformMakeRotation(degreesToRadian(90));

[picker.view setTransform:landscapeTransform];

【讨论】:

  • 如果我旋转选择器它工作得很好......但是当我关闭picker.view......按关闭按钮......我的原始场景转换为肖像模式......
  • uh.... 尝试在之前添加相同的两行(或之后,我不确定,尝试什么最适合您)[picker.view removeFromSuperview];但使用 degreeToRadian(0)
【解决方案2】:

您可以创建自己的从 MFMailComposeViewController 派生的邮件撰写器,并且您只能覆盖函数 shouldAutorotateToInterfaceorientation。 我没有尝试过,只是给你一个想法。

【讨论】:

    【解决方案3】:

    谁在管理您的 EmailScene 对象?如果您遵循 MVC 模式,请尝试使用 EmailScene 视图的 viewController 呈现 MFMailComposeViewController 对象。如果您支持视图控制器中的所有方向,这将起作用。

    用途:

    -(void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated
    

    而不是将 MFMailComposeViewController 的视图添加为子视图。

    编辑:尝试使用根视图控制器呈现 MFMailComposeViewController。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多