Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 缩放类似iOS邮件应用程序的UIWebView_Objective C_Ios_Uiwebview_Uiscrollview_Xamarin.ios - Fatal编程技术网

Objective c 缩放类似iOS邮件应用程序的UIWebView

Objective c 缩放类似iOS邮件应用程序的UIWebView,objective-c,ios,uiwebview,uiscrollview,xamarin.ios,Objective C,Ios,Uiwebview,Uiscrollview,Xamarin.ios,我想重新创建一个视图,在查看电子邮件时,您可以像iPhone/iPad邮件应用程序或Sparrow那样缩放视图,其中顶部是信息块,然后是UIWebView。显然,我可以在interface builder或代码中轻松完成这项工作,但我希望它的行为与邮件应用程序类似 我所说的“像邮件应用程序”是指,当你点击缩放(视图中的任何位置)时,UIWebView是唯一一个真正缩放的视图,并且顶部内容保持不变大小。当您缩小太远并看到背景时,整个视图都会缩小(不仅仅是UIWebview),整个视图也会滚动 我已

我想重新创建一个视图,在查看电子邮件时,您可以像iPhone/iPad邮件应用程序或Sparrow那样缩放视图,其中顶部是信息块,然后是UIWebView。显然,我可以在interface builder或代码中轻松完成这项工作,但我希望它的行为与邮件应用程序类似

我所说的“像邮件应用程序”是指,当你点击缩放(视图中的任何位置)时,UIWebView是唯一一个真正缩放的视图,并且顶部内容保持不变大小。当您缩小太远并看到背景时,整个视图都会缩小(不仅仅是UIWebview),整个视图也会滚动

我已经做了一些实验并尝试了一些建议,比如在UIWebView的顶部插入顶视图,根据内容大小扩展UIWebView的高度,但这总是会导致顶视图也放大,或者只是UIWebView

我希望这有点道理。这可能真的很简单,但我已经断断续续地尝试分类了一段时间,我再也看不见树木了


这是针对MonoTouch应用程序的,但如果有人有Objective-C示例或任何东西,我可以转换并发回。

我只为我们的应用程序做了这些;它并不像听起来那么简单,但在iOS 5上,它应该比iOS 4稍微简单一些。 查看您希望的顶部部分当web视图完成加载HTML并呈现它时,获取web视图的
滚动视图
,并将视图作为子视图添加到该视图中。将俯视图的帧高度添加到滚动视图的
contentSize.height
,并将高度添加到滚动视图的其余子视图(非俯视图)的
origin.y
。将视图控制器设置为web视图滚动视图的代理。每当用户滚动时:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   
    CGRect frame = contentView.frame;

    if(scrollView.contentOffset.x < 0)
    {
        frame.origin.x = 0;
    }
    else if((scrollView.contentOffset.x + contentView.frame.size.width) > scrollView.contentSize.width)
    {
        frame.origin.x = scrollView.contentSize.width - contentView.frame.size.width;
    }
    else
    {
        frame.origin.x = scrollView.contentOffset.x;
    }

    [contentView setFrame:frame];
}
-(无效)scrollViewDidScroll:(UIScrollView*)scrollView
{   
CGRect frame=contentView.frame;
if(scrollView.contentOffset.x<0)
{
frame.origin.x=0;
}
else if((scrollView.contentOffset.x+contentView.frame.size.width)>scrollView.contentSize.width)
{
frame.origin.x=scrollView.contentSize.width-contentView.frame.size.width;
}
其他的
{
frame.origin.x=scrollView.contentOffset.x;
}
[contentView setFrame:frame];
}

这应该使它的行为与mail.app视图完全相同。

您是否有机会子类化
MFMailComposeViewController
来执行您需要的操作?这是用于发送电子邮件的内置功能。第二个问题可以通过将视图保留在scrollView中的正确位置来解决:didScroll:。第二个问题可以通过添加第三个视图来解决,该视图的工作是在需要时保持底部为白色。@LeoNatan:谢谢您的回答!你让我开心!:)