if([MFMessageComposeViewController canSendText])
{
MFMessageComposeViewController *sms_message_vc = [[MFMessageComposeViewController alloc] init];
sms_message_vc.body = text;
sms_message_vc.recipients = recipients;
sms_message_vc.messageComposeDelegate = self;
[self presentModalViewController:sms_message_vc animated:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
[sms_message_vc release];
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时,在实际显示撰写视图之前会有几秒钟的延迟.造成这种情况的原因是什么以及如何消除延迟?
编辑1:澄清:制作sms_message_vc和ivar没有帮助,因为该...alloc] init]过程将挂起UI几秒钟,无论它在哪里.
编辑2:尝试GCD(具有不同的优先级)以尝试同时运行初始化.没有帮助:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, (unsigned long)NULL), ^(void){
sms_message_vc = [[MFMessageComposeViewController alloc] init];
sms_message_vc.messageComposeDelegate = self;
});
Run Code Online (Sandbox Code Playgroud)
考虑将 MFMessageComposeViewController *sms_message_vc 设为类实例变量并调用:
MFMessageComposeViewController *sms_message_vc = [[MFMessageComposeViewController alloc] init];
Run Code Online (Sandbox Code Playgroud)
早些时候,以及在启动后将委托设置为self右侧sms_message_vc
然后就做:
sms_message_vc.body = text;
sms_message_vc.recipients = recipients;
[self presentModalViewController:sms_message_vc animated:FALSE];
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
[sms_message_vc release];
Run Code Online (Sandbox Code Playgroud)
当您想实际发送消息时。这不会改变太多,但可能会有所帮助。
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |