and*_*itt 14 objective-c uiwebview uiscrollview xamarin.ios ios
我想重新创建一个视图,您可以在查看电子邮件时像iPhone/iPad Mail应用程序或Sparrow一样进行缩放,其中顶部有信息块,然后是UIWebView.我显然可以在界面构建器或代码中轻松完成此操作,但我希望它的行为类似于Mail应用程序.
我喜欢"喜欢邮件应用程序",当你捏缩放(在视图中的任何地方)时,UIWebView是唯一实际缩放的视图,顶级内容保持相同的大小.当您缩小太远并看到背景时,整个视图会缩小(不仅仅是UIWebview),整个视图也会滚动.
我已经做了一些实验,并尝试了一些建议,比如在UIWebView的顶部插入顶视图,根据内容大小扩展UIWebView的高度,但这总是会导致顶视图缩放,或者只是UIWebView.
我希望这是有道理的.这可能很简单,但我一直试图对它进行一段时间的分类,以至于我再也看不到木头了.
这适用于MonoTouch应用程序,但如果有人有Objective-C示例或任何我可以转换和回发的内容.
我已经为我们的申请做了这件事; 它并不像听起来那么简单,但在iOS 5上它应该比iOS 4复杂一些.想要看到你想要保持不变的顶部.当您的Web视图完成加载HTML并呈现它时,获取scrollViewWeb视图,并将视图作为子视图添加到该视图中.将顶视图的框架高度添加到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];
}
Run Code Online (Sandbox Code Playgroud)
这应该使它的行为与mail.app视图完全相同.
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |