我有一个UIWebView控制器,可以加载一个网页,我想在页面顶部添加一些带有刷新和关闭按钮的栏 . 该栏应该在页面加载时隐藏,如果用户点击页面的顶部,则应该再次显示 .
有谁知道怎么接近它?有没有简单的方法呢?
更新:
我想我对这个问题不够清楚,所以这里有一些澄清:
1.应用程序是一个标准应用程序,其中一个流程打开加载网页的UIWebView
2.我正在寻找的是一个可以在网页顶部滑动的栏(在UIWebView中加载),并且应该帮助用户克服由于某种原因未加载网页的情况 .
3.栏应该保持后面(只需关闭UIWebView)并刷新(重新加载UIWebView)操作 .
希望它有所帮助 .
谢谢,Shimix
3 回答
我现在正在做类似的事情到目前为止,这就是我想出的 . 其中一些可能很明显,但很重要:
您的地址栏应该是左
navigationItem
.搜索栏是rign
navigationItem
.在URL框中开始/结束编辑时,您应该为取消按钮设置动画 .
Safari Mobile使用
navigationBar
的Prompt
属性来显示网页 Headers .要为搜索/ URL栏的宽度设置动画,请在选中该栏时使用
UIView
动画 .使用调用webview的刷新,后退和前进方法的UIBarButtonItems在webview上方添加UIToolbar非常简单 . 您还可以将webviewdelegate方法添加到视图控制器,以检测页面何时完成加载并以此方式隐藏/显示工具栏 .
如果您希望将刷新和导航控件显示为webview本身的html内容的一部分,那么这是一个更小的试图,但并非不可能 . 您可以使用webview的shouldLoadRequest委托方法来检测这些按钮是否已被点击,然后在viewcontroller中执行相应的操作 . 隐藏和显示导航栏必须在javascript中处理 .
除非我错过了这样做的库/项目,否则我认为没有一种简单的方法可以做到这一点 .
我已经编写了类似于Safari移动地址栏的内容,并且从内存中,它涉及使用私有api和/或使用"not so private but use at your own risks"
UIWebView
子视图层次结构...