20100-10-31 ChineseName 中技术要点备忘

本文介绍如何在iOS应用中实现对指定UIView的截图功能并保存至iPhone相册的方法,同时提供了使用MFMailComposeViewController组件来发送带有图片附件的邮件的详细步骤。

截屏操作

// 对指定 UIView 截屏并保存到IPHONE相册中

-(void) saveViewToPhoto:(UIView*) view
{
 if(view == nil)
 {
  view = self.view;
 }

 CGSize size = view.bounds.size;
 size.height = size.height - 37; // 减去 操作“按钮”
 
 UIGraphicsBeginImageContext(size);     //
 
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}


// 使用MFMailComposeViewController

// MFMailComposeViewController  是IPHONE 内置发邮件组件,使用它可以在自己的应用弹出发邮件界面且不需要退出当前应用。 MFMailComposeViewController 可以在程序中指定接收人组、抄送组、邮件主体及附件也可以在弹出的界面中手工指定

 

使用条件:

1. 首先需要设备支持 在IPHONE 或IPOD TOUCH 中设置好一个可用邮件。

2. 开发SDK 要3.0以后

其它的就是代码了 如下:

 

// 首判断你的设备或系统是否能够使用MFMailComposeViewController  发送邮件
 BOOL isCanSend = [MFMailComposeViewController canSendMail];
 if (isCanSend == NO)
 {
  UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Send Error", @"")
              message:NSLocalizedString(@"Can'nt Send EMail.", nil)
                delegate:nil cancelButtonTitle:NSLocalizedString(@"Ok", "ok") otherButtonTitles:nil];
 
  [alert show];
 
  [alert release];
 
  return;
 }
 

// 创建 MFMC 实例
 MFMailComposeViewController* eMailPicker = [[MFMailComposeViewController alloc] init];
 

// 指定处理委托 为当前类
 eMailPicker.mailComposeDelegate = self;
 // 设置标题
 [eMailPicker setSubject:[NSString stringWithFormat:@"%@ %@",enName.text, NSLocalizedString(@"Chinese Name Information", nil)]];
 
 // 获取主体 内容可以自定义
 NSString* emailBoy = [self getEMailBody];
 // 设置邮件主体 非HTML格式
 [eMailPicker setMessageBody:emailBoy isHTML:NO];
 // 生成一个附件二进制数据
  NSData* a1 = UIImagePNGRepresentation(totemImageView.image);
  // 添加一个附件 PNG图像
  [eMailPicker addAttachmentData:a1 mimeType:@"image/png" fileName:totemName.text];
   // 添加另一个附件
   NSData* a2 = UIImagePNGRepresentation(propertyImageView.image);
  [eMailPicker addAttachmentData:a2 mimeType:@"image/png" fileName:propertyName.text];
   
  弹出发邮件界面
  [self presentModalViewController:eMailPicker animated:YES];
 
  [eMailPicker release];


 

 

还需要一个返回处理状态的 委托

// 根据发送邮件 邮件服务器处理返回状态  在界面上做相应的提示信息 并消掉邮件发送界面。

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
 NSString* sendInfo;
 
 if (result == MFMailComposeResultCancelled)
 {
  sendInfo = [NSString stringWithString:NSLocalizedString(@"Send EMail Cancelled!", nil)];
 }
 else if(result == MFMailComposeResultSaved)
 {
  sendInfo = [NSString stringWithString:NSLocalizedString(@"Send EMail Saved!", nil)];
 }
 else if(result == MFMailComposeResultFailed)
 {
  sendInfo = [NSString stringWithString:NSLocalizedString(@"Send EMail Failed!", nil)];
 }
 else
 {
  sendInfo = [NSString stringWithString:NSLocalizedString(@"Send EMail Sent!", nil)];
 }

 
 [self dismissModalViewControllerAnimated:YES];
 
 // NSLocalizedString(@"Send Succeeded!", nil)
 
 UIAlertView * alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Send EMail", nil)
              message:sendInfo delegate:nil
             cancelButtonTitle:NSLocalizedString(@"Ok",nil) otherButtonTitles:nil];
 
 [alert show];
 
 [alert release];
 
}

Delphi 12.3 作为一款面向 Windows 平台的集成开发环境,由 Embarcadero Technologies 负责其持续演进。该环境以 Object Pascal 语言为核心,并依托 Visual Component Library(VCL)框架,广泛应用于各类桌面软件、数据库系统及企业级解决方案的开发。在此生态中,Excel4Delphi 作为一个重要的社区开源项目,致力于搭建 Delphi 与 Microsoft Excel 之间的高效桥梁,使开发者能够在自研程序中直接调用 Excel 的文档处理、工作表管理、单元格操作及宏执行等功能。 该项目以库文件与组件包的形式提供,开发者将其集成至 Delphi 工程后,即可通过封装良好的接口实现对 Excel 的编程控制。具体功能涵盖创建与编辑工作簿、格式化单元格、批量导入导出数据,乃至执行内置公式与宏指令等高级操作。这一机制显著降低了在财务分析、报表自动生成、数据整理等场景中实现 Excel 功能集成的技术门槛,使开发者无需深入掌握 COM 编程或 Excel 底层 API 即可完成复杂任务。 使用 Excel4Delphi 需具备基础的 Delphi 编程知识,并对 Excel 对象模型有一定理解。实践中需注意不同 Excel 版本间的兼容性,并严格遵循项目文档进行环境配置与依赖部署。此外,操作过程中应遵循文件访问的最佳实践,例如确保目标文件未被独占锁定,并实施完整的异常处理机制,以防数据损毁或程序意外中断。 该项目的持续维护依赖于 Delphi 开发者社区的集体贡献,通过定期更新以适配新版开发环境与 Office 套件,并修复已发现的问题。对于需要深度融合 Excel 功能的 Delphi 应用而言,Excel4Delphi 提供了经过充分测试的可靠代码基础,使开发团队能更专注于业务逻辑与用户体验的优化,从而提升整体开发效率与软件质量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值